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>;查询服务器支持什么命令。
本文由专业服务器租用——TOP云(zuntop.com)科技(http://www.zuntop.com)提供。
当前大数据应用的成功案例主要集中在欧美发达国家,除技术突破和应用创新之外,...
前提条件 在您创建负载均衡器前,确保您已经做好了相关规划,详情参考 规划和准...
学习一种新的编程语言很像学习说一种新的自然语言。 但是,正如我确定我的许多双...
近年来海外服务器业务蓬勃发展,越来越多的人选择租用海外服务器。美国服务器,...
您花了无数小时来制作YouTube教程,参加付费在线课程以及阅读编程入门文章。但是...
并发编程中我们需要注意的问题有很多,很庆幸前人已经帮我们总结过了,主要有三...
调用DeleteNetworkInterface删除一个弹性网卡(ENI)。 接口描述 弹性网卡必须处...
阿里云IoT企业物联网平台提供基于GPS 移动基站、WiFi热点等信息来进行设备定位的...
2020年10月13日,微软发布预警,Windows TCP/IP堆栈不正确的处理ICMPv6 Router A...
不少建网站客户咨询我们,为何别人家的 vps主机 那么便宜!是不是有什么猫腻呢?...