前言
- 邮箱对我们来说是再熟悉不过了,它与我们的生活、工作紧密联系在一起:登录、注册、往来沟通…无处不在;
- 邮箱的使用很便捷,可是邮箱是如何传输、投递信息呢?电子邮件协议
- 电子邮件协议主要包括
IMAP
、POP3
、SMTP
协议; - 这篇文章将给大家介绍一下邮件所用的协议、协议格式标准以及不同协议之间的区别与联系;
SMTP
SMTP
的全称是Simple Mail Transfer Protocol
即简单邮件传输协议
,在1982年正式提出。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP
协议属于TCP/IP
协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP
服务器就是遵循SMTP
协议的发送邮件服务器。SMTP
认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录SMTP
服务器,这就使得那些垃圾邮件的散播者无可乘之机。增加SMTP
认证的目的是为了使用户避免受到垃圾邮件的侵扰。SMTP
是一种应用层、基于文本格式的协议,主要用于邮件服务器间的连接、数据传输等。
POP
POP
是Post Office Protocol
的简称,即邮局协议
。现在主要使用是POP3
即邮局协议
的第3个版本;- 它规定怎样将个人计算机连接到
Internet
的邮件服务器和下载电子邮件的电子协议, 是TCP/IP
协议族中的一员(默认端口是110); - 它是因特网电子邮件的第一个离线协议标准,
POP3
允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3
服务器则是遵循POP3
协议的接收邮件服务器,用来接收电子邮件的。
POP与POP3区别
POP
协议支持离线
邮件存储转发处理即客户端程序连接服务器,下载所有未阅读的电子邮件;一旦将邮件从邮件服务器端送到客户端上,邮件服务器上的邮件将会被删除;- 目前的
POP3
邮件服务器大都可以只下载邮件,服务器端并不删除
,也就是改进后的POP
协议; POP3
协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上。比如通过客户端收取了邮箱中的3封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的,本地化的操作不会同步到邮箱服务器。
IMAP
IMAP
全称是Internet Mail Access Protocol
,即交互式邮件访问协议
,是一个应用层协议(端口是143)。用来从本地邮件客户端(Outlook Express、Foxmail、Mozilla Thunderbird等)访问远程服务器上的邮件。
IMAP和POP3的区别
IMAP
像POP3
那样提供了方便的邮件下载服务,让用户能进行离线阅读。IMAP
和POP3
是邮件访问最为普遍的Internet标准协议。不同点如下所示:IMAP
提供Webmail
与电子邮件客户端之间的双向通信,客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上(如:删除邮件
,标记已读
等,服务器上的邮件也会做相应的动作。所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的)。而POP3
在客户端的操作不会同步到服务器上;IMAP
更好地支持了从多个不同设备中随时访问新邮件;IMAP
提供的摘要浏览功能可以让你在阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作出是否下载的决定;POP3
需要下载未阅读的邮件,IMAP
可以不用把所有的邮件全部下载,而是通过客户端直接对服务器上的邮件进行操作。所有通过IMAP
传输的数据都会被加密,从而保证通信的安全性;IMAP
整体上为用户带来更为便捷和可靠的体验。POP3
更易丢失邮件或多次下载相同的邮件。
RFC822标准
RFC 822
是电子邮件的标准格式,电子邮件除了是由一个Internet用户传递给另一个用户的信息之外,还必须包含附加的服务信息,这两个部分加在一起叫做电子邮件的标准格式,外文简称RFC 822
(摘录于百度百科);- 该标准主要定义邮件结构和数据格式,为邮箱服务器的数据解析和数据重组提供统一的处理方式,比如:一些处理邮件代收发的第三方库都必须按照该标准处理数据。
SSL
SSL
(Secure Sockets Layer
安全套接层),及其继任者传输层安全(Transport Layer Security
,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS
与SSL
在传输层对网络连接进行加密;SSL
协议提供的服务主要有:
|
|
- 基于数据的安全性,笔者建议使用邮箱是设置
SSL
协议。
邮件发送的基本原理
- 1.发信人在用户代理上编辑邮件,并写清楚收件人的邮箱地址;
- 2.用户代理根据发信人编辑的信息,生成一封符合邮件格式的邮件;
- 3.用户代理把邮件发送到发信人的的邮件服务器上,邮件服务器上面有一个缓冲队列,发送到邮件服务器上面的邮件都会加入到缓冲队列中,等待邮件服务器上的
SMTP
客户端进行发送; - 4.发信人的邮件服务器使用
SMTP
协议把这封邮件发送到收件人的邮件服务器上(它会自动根据收件人的邮箱来分析出收件人的邮箱服务器); - 5.收件人的邮件服务器收到邮件后,把这封邮件放到收件人在这个服务器上的信箱中;
- 6.收件人使用用户代理来收取邮件。首先用户代理使用
POP3
协议来连接收件人所在的邮件服务器,身份验证成功后,用户代理就可以把邮件服务器上面的收件人邮箱里面的邮件读取出来,并展示给收件人。
小结
- 本文总结邮箱相关传输协议,以及不同协议之间的区别。熟悉了这些之后,就可以为后续的邮件开发提供基本的理论支持了。
参考文献
扫一扫下面的二维码,欢迎关注我的个人微信公众号攻城狮的动态(ID:iOSDevSkills),可在微信公众号进行留言,更多精彩技术文章,期待您的加入!一起讨论,一起成长!一起攻城狮!