「Email Protocols」- 电子邮件协议

  CREATED BY JENKINSBOT

Ray Tomlinson

History of email

The Reason Why Your Email Address Has an @ in It
“I looked at the keyboard, and I thought: ‘What can I choose here that won’t be confused with a username?'” Tomlinson remembers. “If every person had an ‘@’ sign in their name, it wouldn’t work too well. But they didn’t. They did use commas and slashes and brackets. Of the remaining three or four characters, the ‘@’ sign made the most sense. It denoted where the user was … at. Excuse my English.”

Tomlinson calls the ‘@’ symbol “the only preposition on the keyboard.”

POP – Post Office Protocol

POP 是本地电子邮件 Client 从远程 Server 取回电子邮件时所使用的应用层协议,服务使用的端口号是 110。 POP 已经开发过几个版本,第三版(POP3)是最常用的标准,但那是在被更先进的 IMAP 以及 webmail 废弃之前的事情了。POP 协议支持“离线”邮件存储转发处理:Client 程序连接 Server,下载所有未阅读的电子邮件;一旦将邮件从邮件 Server 端送到 Client 上,邮件 Server 上的邮件将会被删除。目前的 POP3 邮件 Server 大都可以“只下载邮件,Server 端并不删除”,也就是改进的 POP 协议。POP3 的加密通信是在协议启动之后,使用 STLS 命令(如果支持)或 POP3S,连接 Server 时,使用 TLS 或 SSL 在 995 端口上;

POP3 协议允许电子邮件 Client 下载 Server 上的邮件,但是在 Client 的操作(如移动邮件、标记已读等),不会影响 Server 上。比如:通过 Client 收取了邮箱中的 3 封邮件并移动到其他文件夹,邮箱 Server 上的这些邮件是不受影响的 ;

POP3 的特征
1)POP3 在 Client 的操作不会反馈到 Server 上,所有对邮件的操作都保存在 Client 的本地中;
2)POP3 需要下载未阅读的邮件;

IMAP – Internet Mail Access Protocol

IMAP(交互式邮件访问协议),是一个应用层协议,服务使用的端口号是 143。在本地邮件 Client(Outlook Express、Foxmail、Mozilla Thunderbird 等)从远程 Server 取回邮件时使用。设计 IMAP 的目标是允许多个电子邮件 Client 完全管理邮箱,因此 Client 通常会在 Server 上留下消息,直到用户明确要删除它们为止。通过 SSL 加密的 IMAP(IMAPS)使用端口号 993。几乎所有的现代电子邮件 Client 和 Server 都支持 IMAP。IMAP 和早期的 POP3 是用于电子邮件获取的两种最普遍的标准协议,许多网络邮件服务提供商如 Gmail,Outlook.com 和 Yahoo!邮件也提供对 IMAP 或 POP3 的支持;

当前的 IMAP 版本(IMAP4rev1)由 RFC3501 定义;

IMAP 的特征
1)IMAP 提供 Webmail 与电子邮件 Client 之间的双向通信,Client 收取的邮件仍然保留在 Server 上,同时在 Client 上的操作都会反馈到 Server 上(如:删除邮件,标记已读等,Server 上的邮件也会做相应的动作。所以无论从浏览器登录邮箱或者 Client 软件登录邮箱,看到的邮件以及状态都是一致的);
2)IMAP 更好地支持了从多个不同设备中随时访问新邮件;
3)IMAP 提供的摘要浏览功能,可以让你在阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作出是否下载的决定;
4)IMAP 可以不用把所有的邮件全部下载,而是通过 Client 直接对 Server 上的邮件进行操作。所有通过 IMAP 传输的数据都会被加密,从而保证通信的安全性;
5)IMAP 整体上为用户带来更为便捷和可靠的体验;

SMTP – Simple Mail Transfer Protocol

SMTP(简单邮件传输协议),用于电子邮件的传输,服务使用的端口号是 25。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地;

尽管电子邮件 Server 和其他邮件传输代理使用 SMTP 发送和接收邮件,但用户级别的 Client 邮件应用程序通常仅使用 SMTP 将邮件发送到邮件 Server 进行中继。为了检索消息,Client 应用程序通常使用 IMAP 或 POP3。SMTP 是一个仅用于发送的协议,它不允许从远程 Server 上“拉”来消息。SMTP Server 就是遵循 SMTP 协议的发送邮件 Server,SMTP 认证就是要求必须在提供了账户名和密码之后才可以登录 SMTP Server,这就使得那些垃圾邮件的散播者无可乘之机;

邮件 Server 之间的 SMTP 通信使用 TCP 端口 25。另一方面,邮件 Client 通常会将外发电子邮件提交邮件 Server 的 587 端口上。尽管已被弃用,邮件提供程序有时仍然允许使用非标准端口 465 来实现此目的;

通过 TLS 保护的 SMTP 连接(SMTPS)可以使用 STARTTLS 进行;

参考文献

Email Protocols – POP3, SMTP and IMAP
邮件协议 POP3/IMAP/SMTP 服务的区别
Wikipedia/IMAP
Wikipedia/SMTP
Wikipedia/POP
电子邮件收发协议总结
基础邮件原理(MUA,MTA,MDA)