邮件协议
SMTP用来发送邮件,POP3用来收邮件。收发都使用TCP。
SMTP
建立连接
发件人的邮件送到发送方邮件服务器的邮件缓存后,SMTP客户就每隔一定时间(例如30分钟)对邮件缓存扫描一次。如发现有邮件,就使用SMTP的数值端口号码25与接收方邮件服务器的SMTP服务器建立TCP连接。在连接建立后,接收方SMTP服务器要发出“220 Service ready”(服务就绪)。然后SMTP客户端向SMTP服务器发送HELO命令,附上发送方的主机名。SMTP服务器若有能力接收邮件,则回答:“250 OK”,表示已准备好接收。若SMTP服务器不可用,则回答“421 Service not available”(服务部可达)。
如在一定时间内(例如三天)发送不了邮件,邮件服务器就会把这个情况高速发件人。
SMTP不适用中间的邮件服务器。不管发送方和接收方的邮件服务器相隔有多远,不管在邮件传送过程中要经历多少个路由器,TCP连接总是在发送方和接收方的这两个邮件只能等待一段时间后再尝试和邮件服务器建立TCP连接,而不能先找一个中间的邮件服务器建立TCP连接。
邮件发送
邮件的传送从MAIL命令开始。MAIL命令后面又发件人的地址。若SMTP服务器及准备好接收邮件,则回答“250 OK”。否则,返回一个代码,指出原因。如:451(处理时出错),452(存储空间不够),500命令(无法识别)等。
下面跟着一个或者多个RCPT命令,作用就是:先弄清楚接收方系统是否及做好接收邮件的准备,然后才发送邮件。这要做是为了避免浪费通信资源,不至于发送了很长的邮件以后才知道地址错误。
在下面就是DATA命令,表示要开始传送邮件的内容了。
虽然SMTP使用TCP连接试图使邮件的传送可靠,但“发送成功”并不等于“收件人读取了这个邮件”。
连接释放
邮件发送完毕后,SMTP客户因发送QUIT命令。SMTP服务器返回的信息时“221(服务器关闭)”,表示SMTP同意释放TCP连接。邮件传送的全部过程即结束。
电子邮件信息格式:
- To:后面填入一个或多个收件人的电子邮件地址。
- Subject:邮件的主题
- Cc:留一个复写副本
关于SMTP的面试题:
①只支持传输7比特ASC II码内容(MIME可同时传送多种类型的数据)
②支持在邮件服务器之间发送邮件
③支持从用户代理向邮件服务器发送邮件
POP3
常用的邮件读取协议有两个POP3(邮局协议)、IMAP(网际报文存取协议)。
POP3:只要用户从POP3服务器读取了邮件,POP3服务器就把该邮件删除,只能查看邮件发送方发送的内容。
IMAP:用户在自己的计算机上就可以操纵邮件服务器的邮箱,就像在本地操纵一样,可以查看邮件的首部等全部信息。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2924854739@qq.com
文章标题:邮件协议
本文作者:DROBP
发布时间:2019-09-07, 21:05:11
最后更新:2019-09-07, 21:05:42
原始链接:https://DROBP.github.io/2019/09/07/邮件协议/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。