读懂邮件头信息

  电子邮件也许是一个Internet上的流行最广泛的应用。也是我们现在的大多数网络办公流程的基础。各种邮件服务器很多,但都大都遵循以1982年出版的RFC822--《ARPA网络文本信息格式标准(STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES)》为基础的一系列邮件格式的规定。

  RFC(The Requests for Comments)是用来规定互联网工作标准的文档。我们使用的时候并没有注意到这些协议在我们的邮件通信过程中默默的发挥着的作用,这丝毫也不能减低这些作用的重要性。邮件内部还有很多不为人知的秘密。

  在RFC822中规定一封信包括一个必须的多个头部域(header fields)和一个可选的体部(body)组成。从一封信头开始至第一个空行都是头部。头部定义了一个邮件的各项基本要素,路由信息等内容。

  在Outlook Express中选定一封信看它的属性。在详细资料选项卡中显示的就是这封邮件的头部内容。也可以选定一封信,另存为一个.eml文件。由于文件是一个纯文本文件,用一般的编辑器打开就可以看到邮件的内容。

  头部有各个头部域组成,每一个头部域都包括域名(field-name)和域体(field-body),它们之间以":"分隔。每一个头部域都可以看作由ASCII码字符组成的独立的文本。常见的头部域包括:"Return-Path", "Received", "Date", "From", "Subject", "Sender","To", "cc","MIME-Version"等。各头部域之间没有规定顺序。

  就像各个域的名字一样。他们表示的具体意义也不同。

  Return-Path域表示退信的地址。

  Received域表示路由信息。Internet上的信件可能是由多个服务器依靠协议传递到达最终的目的邮箱的。每一个服务器都会把自己的一段 Received域信息添加近信件。所以可能有多段Received域,依传递次序排列。这个域的内容很有意思,我们可以根据每一段的内容来跟踪一封信在internet上的传递过程。网管人员也可以根据这些信息做出很有价值的判断。

  例如一段代码中

  Received: from unknown (unknown [202.108.44.208]) by mx7.163.com (Postfix) with SMTP id 74E0E8 for<hang.hao@163.com>; Fri, 28 Feb 2003 18:10:25 +0800 (CST)中,from 表示发送主机,by表示接受主机,via物理路径(本例没有),with表示使用的协议,id表示接受消息号,for表示目的邮件地址,分号后面表示时间。

  Date域表示建立信件的时间。

  From域表示邮件作者。

  Subject域就是邮件的主题。

  Sender域表示邮件的实际发送者。

  To,cc域都表示接受的邮件地址。

  MIME-Version域表示MIME的版本(以后扩充的域)

  还有一个域—Content-Type。标识了一个重要的概念:邮件内容的格式。这个域的内容根据互联网的发展产生,使邮件可以用来传输非文本内容,在RFC822中并没有定义,而是在后续的RFC2045,RFC2046等文档中有定义。

  还有一些不太常见的头部域,如"References","Message-ID"域。以及一些由不同厂家定义的自己的域(域名以"X-"开头)。

  知道了这些知识,就可以看懂邮件头部。了解到那些邮件的秘密。

  比如这是一封邮件的头部。

Return-Path: "sea" <haibo.yang@netcs.com>

Received: from unknown (unknown [202.108.44.208])

by mx7.163.com (Postfix) with SMTP id 74E0E8

for <hang.hao@163.com>; Fri, 28 Feb 2003 18:10:25 +0800 (CST)

Received: from smtp.netcs.com (unknown [211.150.100.6])

by 192.168.1.208 (Coremail:www.163.com) with SMTP id cAsAAJY1Xz7kAmQG.1

for <hang.hao@163.com>; Fri, 28 Feb 2003 18:10:30 +0800 (CST)

Received: from sea (unknown [192.168.18.160])

by smtp.netcs.com (Postfix) with ESMTP id E55D02675F

for <hang.hao@163.com>; Fri, 28 Feb 2003 18:09:58 +0800 (CST)

Message-ID: <000901c2df11$2fcac090$a012a8c0@sea>

From: "sea" <haibo.yang@netcs.com>

To: "=?gb2312?B?usK6vQ==?=" <hang.hao@163.com>

Message-ID: <000901c2df11$2fcac090$a012a8c0@sea>

References: <000c01c2decb$9c7b7860$a012a8c0@sea>

<004601c2dee2$28a348c0$2400a8c0@haostation>

<001501c2deeb$352b34a0$a012a8c0@sea>

Subject: Re: hello

Date: Fri, 28 Feb 2003 18:07:22 +0800

MIME-Version: 1.0

Content-Type: multipart/alternative;

boundary="----=_NextPart_000_0006_01C2DF54.3DDEBE50"

X-Priority: 3

X-MSMail-Priority: Normal

X-Mailer: Microsoft Outlook Express 6.00.2600.0000

X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000


  通过辨认就可以知道这是一封从(From域)"sea" <haibo.yang@netcs.com>写给(To域)"=?gb2312?B?usK6vQ==?=" <hang.hao@163.com>的Id(Message-ID域)为<000901c2df11$2fcac090$a012a8c0@sea>的回信。退信的地址(Return-Path域)是haibo.yang@netcscom可以看出(References域)这封信已经经过了连续三次回复。主题(Subject域)是Re: hello。时间(Date域)是2003年的3月28日。邮件优先级(X-Priority域)是普通。邮件的传递依次经过了三个服务器(Received域):smtp.netcs.com;unknown;和mx7.163.com。还可以看到各服务器的协议和到达各服务器的时间。其中Postfix和Coremail都是常见的邮件系统。其中邮件接收地址中的内容由于包含汉字进行了编码。

  一封邮件首先建立的是核心的几个域:From,To,Message-Id,Subject,Date等,在传输过程中每通过一个服务器再由此服务器在邮件头部添加一行Received信息,最后一个服务器添加退信地址(Return-Path)。

  邮件头的格式制定的细节是根据信息交流和网络传输的特点制定的。阅读它们不仅可以知道邮件传输的秘密,还可以让我们体会到协议制定与实现间的互相关联的紧密关系。可以通过http://www.rfc.net/ 查询到RFC822,同时可以查询到其它重要的RFC文档。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值