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

电子邮件头全揭密

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

邮件中继

中继

  对于某些具有特殊的‘生命’周期的邮件头可能和前面讨论的情况完全不同:

Received: from unwilling.intermedia.com (unwilling.intermedia.com [98.134.11.32]) by mail.zky.ac.cn (8.8.5) id 004B32 for <lisi@zky.ac.cn>; Wed, Jul 30 1997 16:39:50 -0800 (PST)
Received: from linuxaid.com.cn ([202.99.11.120]) by unwilling.intermedia.com (8.6.5/8.5.8) with SMTP id LAA12741; Wed, Jul 30 1997 19:36:28 -0500 (EST)
From: Anonymous Spammer <junkmail@linuxaid.com.cn>
To: (recipient list suppressed)
Message-Id: <w45qxz23-34ls5@unwilling.intermedia.com>
X-Mailer: Massive Annoyance
Subject: WANT TO MAKE ALOT OF MONEY???

  这个邮件头和以前的不同之处可能会令你认为这是一封垃圾邮件,但是这里引起你的怀疑的是'Received:'头。从'Received:'头看来,邮件是来自linuxaid.com.cn,然后从这里传输给unwilling.intermedia.com,然后从这里再次传输到最终目的地址:mail.zky.ac.cn。从'Received:'头看来事情就是这样的,但是中间为什么会出现unwilling.intermedia.com呢?因为它和发送者和接收者都没有直接的关系。

  要理解原因需要对SMTP协议进行一些了解。本质上来讲,传输过程是这样的:linuxaid.com.cn连接unwilling.intermedia.com的SMTP端口。告诉它‘请发送这封邮件到rth@zky.ac.cn。它可能是以最直接的方法来实现:RCPT TO: rth@zky.ac.cn。到现在为止,unwilling.intermedia.com接管对该邮件的处理。因为它被告知将该信件转发给其他一个域:zky.ac.cn,它就查找对于域名zky.ac.cn的邮件服务器然后将邮件转发给zky.ac.cn。这个过程通常被称作邮件中继(mail relaying)。

  出现邮件中继是由于历史的原因,使用邮件中继是有它的好处的。到八十年代末期,很多网络中的计算机都不是直接通信来传输邮件。而是通过邮件路由来传递邮件,通过邮件路由服务器一步一步地进行邮件传输。这样做是非常麻烦的,发送者往往需要手工指定一封邮件需要经过哪些邮件路由服务器,比如需要从San Francisco发送一封邮件到New York,则需要在信封中添加如下内容:

San Francisco, Sacramento, Reno, Salt Lake City, Rock Springs, Laramie, North Platte, Lincoln, Omaha, Des Moines, Cedar Rapids, Dubuque, Rockford, Chicago, Gary, Elkhart, Fort Wayne, Toledo, Cleveland, Erie, Elmira, Williamsport, Newark, New York City, Greenwich Village, #12 Desolation Row, Apt. #35, R.A. Zimmermann 

  如果从邮局工作人员的角度来考虑,这种模型是非常有用的。在Gary的邮局只需要知道如何和临近的邮局Chicago和Elkhart通信,而无需消耗资源计算如何将邮件发送到New York(这时候就很清楚为什么这种模式对于邮件发送者来说非常糟糕,为什么这种方法被抛弃了)。但是这就是邮件被传输的过程。因此服务器具有这样的中继的能力在那时是很重要的。

  而现在中继通常被用作不道德的广告商用来隐藏它们的原始地址,将埋怨转嫁给被用来中继的服务器而不是其所在ISP的技术。同样通过中继可以实现将发送信件的负载转移到中继服务器上,从而实现盗用中继服务器的服务资源。在这里最重要的一点是理解邮件内容是在发送点linuxaid.com.cn被编辑。中间的服务器unwilling.intermedia.com只是参加了中间的传输工作,它并不能对发送者有任何的约束力。

  在上面的例子中应该注意的另外一点是'Message-Id:'并不是由发送者服务器(linuxaid.com.cn)而是中继计算机(unwilling.intermedia.com)填写的。这是被中继的邮件的一个典型特性,该特性反映了发送服务器并没有提供Message-Id的事实。

信封头

  上面关于SMTP的讨论部分提到了‘消息’头和‘信封’头的不同之处。这种区别和导致的后果将在这里详细地讨论。

  简单地说,‘信封’头实际上是由接收消息的邮件服务器产生的,而不是发送者服务器。按照这个定义,‘Received:’头是信封头,而一般来说常常使用'envelope From'和'envelope To'来指示它们。

  'envelope From'头是从MAIL FROM命令得到的。如发送者邮件服务器发出命令MAIL FROM: ideal@linuxaid.com.cn,则接收者服务器则产生一个'envelope From'头:>From ideal@linuxaid.com.cn。

  注意这里少了一个冒号—'From'而不是'From:'。也就是说信封头在其后没有冒号。当然这个惯例并不是标准,但是这时一个值得注意的惯例。

  对应的是'envelope To'同样来自于RCPT TO命令。如果发送者服务器发出命令RCPT TO: ideal@btamail.net.cn。则'envelope To'为ideal@btamail.net.cn。一般来说实际上并没有这样一个邮件头,它常常是包含在Received:头中。

  存在信封信息的一个重要结果就是消息From:和To:变得毫无意义。From:头是由发送者提供的,同样To:也是由发送者提供的。因此邮件仅仅基于'envelope To'来进行转发路由,而不是基于消息To:。

  为了从实际中理解这个概念,看看下面这样的邮件传输:

HELO galangal.org
250 mail.zky.ac.cn Hello linuxaid.com.cn [202.99.11.120], pleased to meet you
MAIL FROM: forged-address@galangal.org
250 forged-address@galangal.org... Sender ok
RCPT TO: lisi@zky.ac.cn
250 lisi@zky.ac.cn... Recipient OK
DATA
354 Enter mail, end with '.' on a line by itself
From: another-forged-address@lemongrass.org
To: (这里你的地址被隐瞒以实现秘密邮件转发和骚扰)
.

250 OAA08757 Message accepted for delivery

  下面是对应的邮件头:

>From forged-address@galangal.org
Received: from galangal.org ([202.99.11.120]) by mail.zky.ac.cn (8.8.5) for <tmh@zky.ac.cn>...

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



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

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