<<  分析 阿里妈妈 的血亲关系 | 主页 | 快要48小时了,献上我的关注于祝福  >>
邮件头的简单研究- [灵猫手札]   2008-01-07

最近在工作中,多次遇到了邮件会话分组、邮件自动分类规则等问题,经过对邮件头的简单分析,原来一些难于解决的问题都迎刃而解了。特此简单记录。本想仔细阅读一下smtp和mime的rfc,并细致介绍一下邮件的格式等相关问题,但犯了一下懒,故此作罢。

本文采取 问题->解决->经验 的方式来介绍

问题1: thrundbird按会话分组结果混乱

现象 前一段时间和几个朋友在邮件里讨论一些问题,来往若干封邮件。使用thrundbird接收邮件的时候,为了能够清楚的理解内容,使用了thrundbird来进行邮件的会话分组(把对同一封邮件的回复组织在一棵会话树上) 。但是后来发现,有时候,两封看起来毫不相干的邮件却被分在了同一个会话中。这让我着实不解。

解决 每次如果需要发一个新邮件,一定要使用邮件的“新建”功能。很多时候,我们为了简单(为了不用重新填写收件人那个长长的列表),于是找之前的一封邮件,然后点击“回复全部”,然后再修改主题和内容。正是这种做法会造成会话分组的混乱。只要是新建的邮件,会成为一个独立的会话组的。

经验 分析邮件头会发现,邮件头中有3个字段, Message-ID、References和In-Reply-To三个字段,分别含义为:本邮件的唯一标识; 本邮件的相关邮件ID列表; 本邮件是针对哪个邮件所做的回复。有了这三个字段,邮件客户端就能够轻松将邮件进行会话分组。另外,thrundbird还有个特性,他会把 收件人发件人一致,并且标题有 "Re: xxx“ 特性的邮件也分为相同的会话。

问题2: 身处多个邮件列表,收到重复邮件

现象 我们单位有多个邮件列表,每个组都会有自己的邮件列表。我身处若干个列表,但是每当接收一个同时发往多个列表的邮件(我恰好同时属于这几个列表)时,我就会收到重复的邮件。并且,我编写了多个邮件过滤规则,原本是根据收件人或标题来将邮件进行自动转移到特定文件夹,但是这样一来就成了,某个文件夹有多个邮件,某个文件夹一个邮件都没有

解决 我使用的是Linux下的KMail来收发邮件的,制订如下的邮件规则:将原有的按照收件人方式进行判断变为按照 List-Id 进行判断。

经验 邮件头里有个字段是 List-Id,该id标明此邮件是从哪个邮件列表过来的。对于每个邮件列表,都拥有一个唯一的List-id,并会将该列表所转发出去的所有邮件附加该字段。利用该字段,我们可以准确的对邮件进行分组。

 

总结

什么是hacker呢? 其实就是深入到对象的内部去探查其原理和规律(hacker当然不是挂马偷QQ的小丑)。当我们遇到一些难于解决的问题时,应该努力尝试深入到对象内部去探个究竟。由于我们目前所应用的大多数东西(软件、协议、构架)都是经过无数优秀的前人所细致推敲的,所以我们所遇到的大多数所谓的“疑难杂症”都是很容易解决的(我今天提到的几个问题,对于看过smtp协议的人来讲,恐怕很容易就解决了)。之所以平时解决不了,是因为有很多内容我们不了解,我们只用到了目标系统最简单、最表面的一层。所以只要肯深入,问题都能解决。我亦将以此文自勉

 






茅菁凌   发表于  2008-01-07 11:40  引用Trackback(0) | 编辑 

Comments

恩,从没用过会话分组的我是进来充流量的。。。
luokk ()   发表于   2008-01-07 16:07:09  [回复]
发表评论

用户名:

Email:

主页:


   
ADs


最近更新

访问统计

历史访问量: