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
此信被前两个人接收,而第三个人在此主机上没有邮箱。
转发的例子
S: RCPT TO:<Postel@USC-ISI.ARPA>
R: 251 User not local; will forward to <Postel@USC-ISIF.ARPA>
或者
S: RCPT TO:<Paul@USC-ISIB.ARPA>
R: 551 User not local; please try <Mockapetris@USC-ISIF.ARPA>
3.3. 确认和扩展
SMTP提供了另外的确认用户名和扩展邮件列表的功能。这些功能由VREF和
EXPN命令完成,它们都以字符串为参数。对于VREF命令,字符串参数指的是用
户名,对此命令的响应要包括用户的命名和用户的邮箱。对于EXPN命令,字符
串参数指的是邮件列表,对此命令的响应多于一个,它们要包括所有列表中用
户的命名和他们的邮箱。
“用户名”是一个多余的项目,它是故意被加上的。如果主机采用VREF命
令和EXPN命令,最后本地邮箱必须提供用户名使它被主机确认。如果主机选择
由另外的字符串作为用户名,也是允许的。
在一些主机中,邮箱列表和一个邮箱的代名有一点不清楚,因为一般的数
据结构可能包括两种类型的入口。如果要发出对邮件列表的确认,应该给出确
定响应。在接收到这个消息后,主机将把邮件传送到列表上所有的地址上去,
如果没有接收到确定响应,就会报告错误。例如,
"550 That is a mail list, not a user name"。如果请求用于扩展一个用户名,
可能通过返回包括一个名字的列表来形成确定响应,如果没有接收到确定响应,
就会报告错误。(例如, "550 That is a user name, not a mailing list")。
在多个响应的情况下(通常是对于EXPN而言的),每个应答指定一个邮箱。
在模糊请求的情况下,例如"VRFY Smith",这里两个Smith的响应必须是
"553 User ambiguous"。
确认用户名的情况如下例所示:例3:
确认用户名
S: VRFY Smith R: 250 Fred Smith <Smith@USC-ISIF.ARPA>
或者
S: VRFY Smith
R: 251 User not local; will forward to <Smith@USC-ISIQ.