Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

电子邮件头全揭密

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

  这次邮件传输发生时间为:太平洋时间Tuesday, March 18, 1997, at 14:39:24(太平洋时间,因为它比格林威治时间晚8个小时,因此是'-0800')。

Received: from alpha.zky.ac.cn (alpha.zky.ac.cn [124.211.3.11]) by mail.zky.ac.cn (8.8.5) id 004A21; Tue, Mar 18 1997 14:36:17 -0800 (PST)

  该邮件头记录了邮件是从alpha.zky.ac.cn(lisi的工作站)传送到到邮件服务器mail.zky.ac.cn的。传送发生在太平洋时间14:36:17。发送计算机自称是alpha.zky.ac.cn,其真实名经dns查询的确是alpha.zky.ac.cn,其IP地址为124.211.3.11,邮件服务器软件为sendmail v8.8.5。该信件被邮件服务器的mail.zky.ac.cn赋给的ID号为004A21。

From: lisi@zky.ac.cn (Li Si)

  该邮件是由lis@zky.ac.cn发送的,其名字为Li Si。

To: zhangsan@263.net

  邮件目的地址为:zhangsan@263.net。

Date: Tue, Mar 18 1997 14:36:14 PST 

  邮件编辑时间为14:36:14 Pacific Standard Time on Tuesday, March 18, 1997。

Message-Id: <lisi031897143614-00000298@mail.zky.ac.cn

  mail.zky.ac.cn给该邮件分配了这个号码来标识它。它和Received头中的SMTP机ESMTP ID号是不一样的。因为该号码是一直伴随整个邮件的。而其它ID则仅仅在特定的邮件服务器上的邮件传输阶段相关联。因此该机器ID号对其它机器来说没有任何意义。有时候Message-ID包含了发送者邮件地址在其中。

X-Mailer: Outlook Express 5.5

  该消息是使用Outlook Express发送的,版本号为5.5。

Subject: 中午搓饭? 

  邮件标题。

邮件协议

  这部分内容相对其它部分来说具有更多原理性内容,主要讨论邮件是如何从一点传输到另外一点的细节。你不需要理解每一句话,但是熟悉这方面的内容有助于在邮件传输出现奇怪现象时弄明白问题所在。由于垃圾电子邮件发送者常常故意制造一些奇怪的情况以掩饰自己的身份,因此能理解这些奇怪的现象对对付这些家伙是非常有用的。

  为了在网络上传输数据,计算机网络协议使用了称为端口的访问入口,你可以将端口看做是一个通道,通过它计算机可以监听网络通信以提供服务。为了同时监听多个通信,计算机需要有使用端口号码标识多个不同的端口以区别这些通信。而和电子邮件传输相关的端口是25。

正常情况

  让我们重新讨论上面的例子,但是这次我们仅仅关心mail.zky.ac.cn到mail.263.net之间的通信过程。首先mail.zky.edu.c打开一个到mail.263.net的25号端口的连接,然后通过该连接发送邮件,当然在发送邮件过程中会有一些管理命令交互过程。交互中的命令和相应都或多或少的是可读的。命令是SMTP协议规定的。如果监听两者之间的通信,可能有以下内容:(粗体部分是mail.zky.ac.cn发出的)

220 mail.263.net ESMTP Sendmail 8.8.5/1.4/8.7.2/1.13; Tue, Mar 18 1997 14:38:58 -0800 (PST)
HELO mail.zky.ac.cn
250 mail.263.net Hello mail.zky.ac.cn [124.211.3.78], pleased to meet you
MAIL FROM: lisi@zky.ac.cn
250 lisi@zky.ac.cn... Sender ok
RCPT TO: zhangsan@263.net
250 zhangsan@263.net... Recipient ok
DATA
354 Enter mail, end with '.' on a line by itself
Received: from alpha.zky.ac.cn (alpha.zky.ac.cn [124.211.3.11]) by mail.zky.ac.cn (8.8.5) id 004A21; Tue, Mar 18 1997 14:36:17 -0800 (PST)
From: lisi@zky.ac.cn (R.T. Hood)
To: zhangsan@263.net
Date: Tue, Mar 18 1997 14:36:14 PST
Message-Id: <lisi031897143614-00000298@mail.zky.ac.cn>
X-Mailer: Outlook Express 5.5
Subject: 中午搓饭?

Do you have time to meet for lunch?

--lisi
.

250 LAA20869 Message accepted for delivery
QUIT
221 mail.263.net closing connection

  整个传输依赖于五个SMTP核心命令(当然SMTP还有一些其它命令,但是它们并不是用来完成真正的邮件传输):HELO,MAIL FROM,RCPT TO,DATA和QUIT。 

  邮件发送者HELO命令用来标识自己的身份。HELO mail.zky.ac.cn可以被解读为'嗨,我是mail.zky.ac.cn'。当然这里发送者可能会撒谎,但是没有任何机制能防止发送者mail.zky.ac.cn说'嗨,我是mail.xxx.com'或是'嗨,我是mail.yyy.com'。然而在大多数情况下接收者都有一些方法来确认发送者的真实身份。 

  MAIL FROM命令标识开始邮件传输,含义是'我有从某人发送来的邮件',该命令后跟的地址就是所谓的‘信封地址’(在后面我们将深入讨论),信封from地址不一定是发送者自己的地址。这个明显的安全漏洞是不可避免的(因为接收者并不知道发送者机器上有哪些地址),但是在特定的情况下这又是一个有用处的特色。

  RCPT TO和MAIL FROM是相辅相成的。其指定邮件接收者。通过多个RCPT TO命令一个邮件可以被发送给多个接收者。(在后面的邮件中继部分将解释该特色可能针对某些不安全的系统滥用)。该命令后跟的地址称为'envelope to'地址。其指定了邮件将被投递给哪些用户,而和信件中的To:指定的地址没有关系。 

  DATA命令指示开始实际的邮件内容传输。DATA命令后输入的任何内容都被看做是邮件的一部分。而格式并没有任何限制。以一个英文单词加冒号开始的行一般被邮件程序看做是邮件头。以英文句号符号(.)开始的行被认为是邮件内容结束。 

  QUIT命令终止连接。

  SMTP协议规范定义在RFC 821中。

非正常情况

  上面的例子有些过于简单。上面的例子有一个假设前提:两个组织的邮件服务器相互之间能直接访问,而不需要经过代理、防火墙等安全设备。这在当前Internet环境下情况往往是这样的。但由于安全对于某些组织来说非常重要,而且网络或组织可能变得越来越庞大,情况就不那么简单了。对于具有代理型防火墙系统的邮件传输来说,区别就在于在邮件的头中多了一次转发过程的记录,也就是邮件首先从发送者邮件服务器发送到防火墙上,然后再从防火墙发送到目的邮件服务器。

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:网络服务器基础   下一篇:Qmail+LDAP安装配置实例(二)

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号