SMTP未实现邮件的传递发送,就会返回如未知本地用户(550)的信息给用户。
当邮件被传递发送时,传递主机必须将自己的名称由转发路径的开始处
移至回复路径的结束处。当邮件最终到达目的地时,接收SMTP将以它的主机邮
件格式自己的名称插入目标邮件中。例如,由传递主机A接收的带有如下参
数的邮件时,
FROM:<USERX@HOSTY.ARPA>
TO:<@HOSTA.ARPA,@HOSTB.ARPA:USERC@HOSTD.ARPA>
将会变成如下形式:
FROM:<@HOSTA.ARPA:USERX@HOSTY.ARPA>
TO:<@HOSTB.ARPA:USERC@HOSTD.ARPA>.
此命令导致它的转发路径参数加入转发路径缓冲区中。
DATA (DATA)
接收者将跟在命令后的行作为邮件内容。此命令导致此命令后的邮件内容
加入邮件内容缓冲区。邮件内容可以包括所有128个ASCII码字符。邮件内容由只
包括一个句号的行结束,也就是如下的字符序列:"<CRLF>.<CRLF>",它指示了
邮件的结束。
邮件内容的结束指示要求接收者现在就处理保存的邮件内容。此过程将回复
路径缓冲区,转发路径缓冲区和邮件内容缓冲区的内容全部清空。如果操作成功,
接收者必须返回OK应答;如果失败也必须返回失败应答。
当接收SMTP收到一条信息时,无论是用作转发还是此邮件已经到达目的地,
它都必须在邮件内容的开始处加上时间戳这一行,这一行指示了接收到邮件主
机和发出此邮件主机的标识,以及接收到邮件内容的时间和日期。转发的信件
将有多行这样的时间戳。当接收SMTP作最后一站的传送时,它将返回路径信息
行插入邮件中。此行包括了发送命令中的<reverse-path>的信息。在这里,最
后一站的传送的意思是邮件将被送到目的用户手中,但在一些情况下,邮件可
能需要更进一步的加工并由另外的邮件系统传送。
可能在返回路径中的邮箱与实际发送的邮件不一致,这个情况可能发生在
需要传送一个特定的错误处理信箱而不是信件发送者那里。上面所述说明了,
最后的邮件内容由一个返回路径行,和在其后的一个或多个时间戳行构成。这
些行后面是邮件内容的头和体信息。
当处理后面的邮件数据指示部分成功时就需要特定的说明。这种情况可能
发生在发送SMTP发现当邮件需要传送给多个用户时,只能够成功地向其中的一
部分发送信息这种情况下。在这种情况下,必须对DATA命令发送OK应答,而接
收SMTP组织并发送一个"不可传递邮件"信息到信息的发送者。在此信息中或者
发送一个不成功接收者的列表,或者每次发送一个不成接收者,而发送多次。
所有不可传递邮件信息由MAIL命令发送。
返回路径和接收时间戳例子
Return-Path: <@GHI.ARPA,@DEF.ARPA,@ABC.ARPA:JOE@ABC.ARPA>
Received: from GHI.ARPA by JKL.ARPA ; 27 Oct 81 15:27:39 PST
Received: from DEF.ARPA by GHI.ARPA ; 27 Oct 81 15:15:13 PST
Received: from ABC.ARPA by DEF.ARPA ; 27 Oct 81 15:01:59 PST
Date: 27 Oct 81 15:01:01 PST
From: JOE@ABC.ARPA
Subject: Improved Mailing System Installed
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 中文版 协议 传输 简单 邮件 命令 发送 路径 接收 一个 |
注册
个人空间
