SMTP服务器通讯模型

2012-06-07

SMTP协议是TCP/IP协议族中的一员,主要对如何将电子邮件从发送方地址传送到接收方地址,也即是对传输的规则做了规定。SMTP协议的通信模型并不复杂,主要工作集中在发送SMTP和接收SMTP上:首先针对用户发出的邮件请求,由发送SMTP建立一条连接到接收SMTP的双工通讯链路,这里的接收SMTP是相对于发送SMTP而言的,实际上它既可以是最终的接收者也可以是中间传送者。发送SMTP负责向接收SMTP发送SMTP命令,而接收SMTP则负责接收并反馈应答。

1.SMTP协议的命令和应答   

从前面的通讯模型可以看出SMTP协议在发送SMTP和接收SMTP之间的会话是靠发送SMTP的SMTP命令和接收SMTP反馈的应答来完成的。在通讯链路建立后,发送SMTP发送MAIL命令指令邮件发送者,若接收SMTP此时可以接收邮件则作出OK的应答,然后发送SMTP继续发出RCPT命令以确认邮件是否收到,如果接收到就作出OK的应答,否则就发出拒绝接收应答,但这并不会对整个邮件操作造成影响。双方如此反复多次,直至邮件处理完毕。SMTP协议共包含10个SMTP命令,列表如下:   

2.SMTP命令命令说明   

HELLO<domain><CRLF>;识别发送方到接收SMTP的一个HELLO命令   

MAILFROM:<reverse-path><CRLF><reverse-path>;为发送者地址。此命令告诉接收方一个新邮件发送的开始,并对所有的状态和缓冲区进行初始化。此命令开始一个邮件传输处理,最终完成将邮件数据传送到一个或多个邮箱中。   

RCPTTO:<forward-path><CRLF><forward-path>;标识各个邮件接收者的地址

DATA<CRLF>   

接收SMTP将把其后的行为看作邮件数据去处理,以<CRLF>.<CRLF>;标识数据的结尾。

REST<CRLF>;退出/复位当前的邮件传输   

NOOP<CRLF>;要求接收SMTP仅做OK应答。(用于测试)   

QUIT<CRLF>;要求接收SMTP返回一个OK应答并关闭传输。   

VRFY<string><CRLF>;验证指定的邮箱是否存在,由于安全因素,服务器多禁止此命令。

EXPN<string><CRLF>;验证给定的邮箱列表是否存在,扩充邮箱列表,也常禁止使用。   

HELP<CRLF>;查询服务器支持什么命令。

本文由专业服务器租用——腾佑科技(http://www.tuidc.com)提供。

上一篇:数据中心服务器虚拟化如何管理网络存储
下一篇:SSH服务器提供两种级别的安全验证