更多的RCPT命令紧跟其后,给出了接收者信息,然后是DATA命令列出发送的邮件
内容,最后邮件内容指示符确认操作。
过程中的第一步是MAIL命令,< reverse-path >包括源邮箱。
MAIL <SP> FROM:<reverse-path> <CRLF>
此命令告诉接收者新的发送操作已经开始,请复位所有状态表和缓冲区。
它给出反向路径以进行错误信息返回。如果请求被接收,接收方返回一个
250 OK应答。<reverse-path>中不止包括了邮箱,它包括了主机和源邮箱的反
向路由,其中的第一个主机就是发送此命令的主机。
过程中的第二步是发送RCPT命令。
RCPT <SP> TO:<forward-path> <CRLF>
此命令给出向前路径标识接收者,如果命令被接收,接收方返回一个
250 OK应答,并存储向前路径。如果接收者未知,接收方会返回一个550 Failure
应答。此过程可能会重复若干次。
<forward-path>不仅包括邮件,它是主机和目的邮箱的路由表,在其中的
第一个主机就是接收命令的主机。 过程中的第三步是发送DATA命令。
DATA <CRLF>
如果命令被接收,接收方返回一个354 Intermediate应答,并认定以下的
各行都是信件内容。当信件结尾收到并存储后,接收者发送一个250 OK应答。
因为邮件是在传送通道上发送,因此必须指明邮件内容结尾,以便应答对话可
以重新开始。SMTP通过在最后一行仅发送一个句号来表示邮件内容的结束,在
接收方,一个对用户透明的过程将此符号过滤掉,以不影响正常的数据。
注意:邮件内容包括如下提示:Date, Subject, To, Cc, From。
邮件内容指示符确认邮件操作并告知接收者可以存储和再发送数据了。如
果此命令被接收,接收方返回一个250 OK应答。DATA命令仅在邮件操作未完成
或源无效的情况下失败。
上面所述的过程是一个发送操作。这些命令只能以上面的顺序使用。下例
表示了在一个发送操作中这些命令的使用。
SMTP过程例子 此例是在Alpha.ARPA主机的Smith发送邮件给Beta.ARPA主机
的Jones,Green和Brown的,这里假定主机Alpha与主机Beta直接相连。
S: MAIL FROM:<Smith@Alpha.ARPA>
R: 250 OK
S: RCPT TO:<Jones@Beta.ARPA>
R: 250 OK
S: RCPT TO:<Green@Beta.ARPA>
R: 550 No such user here
S: RCPT TO:<Brown@Beta.ARPA>
R: 250 OK
S: DATA
R: 354 Start mail input; end with <CRLF>.<CRLF>
S: Blah blah blah...
S: ...等等
S: <CRLF>.<CRLF>
R: 250 OK
此信被前两个人接收,而第三个人在此主机上没有邮箱。
3.2. 转发
下面是一些<forward-path>中目的地址不正确的,但接收者知道正确的目
的地址的例子。在这些例子中,下列应答之一应该允许发送方与获得正确地址。
251:用户不在本地;将向前发送到<forward-path>。
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 中文版 协议 传输 简单 邮件 命令 发送 路径 接收 一个 |
注册
个人空间
