当然直接转述百度百科或者维基百科或者 RFC 显然不够直观,于是我简单花了几个图把这块说一下,如果有错误,欢迎指正
首先,你要知道,你申请邮箱之后用邮箱来收发电子邮件,电子邮件并不是存在你本地的电脑上的,而是存在邮箱服务提供商的数据中心里,如下图所示
你的邮箱账号和密码就是用来登陆 Gmail 或者 QQ 邮箱的邮箱服务器的
而在这些服务器集群里,会跑着 IMAP 服务器和 SMTP 服务器
当接收邮件时,情况如下图所示
用户接收邮件时,可以通过 Web 界面来登录邮箱并阅读邮件,也可以通过第三方邮件客户端,包括但不限于 Outlook,Foxmail,Mutt等来收取,而第三方客户端与邮件服务器通信时遵守的协议就是 IMAP
通过 IMAP 协议,第三方客户端可以下载邮件头或者邮件全文到本地,如上图中箭头所示
以前也有用 POP3 协议的,至于 POP3 与IMAP 的区别不是重点就暂时不写了
当发送邮件时,情况如下图所示
比如使用 Gmail 的用户 A 要给使用 QQ 邮箱的用户 B 发送一封电子邮件,那么流程如下:
首先 A 与Gmail 的SMTP 服务器通信,将邮件标题、内容、收件人邮件地址等信息发送至 Gmail 的SMTP 服务器
然后,Gmail 的SMTP 将该封邮件投递至 QQ 邮箱的 SMTP 服务器
B 收到 QQ 邮箱的提醒,通过 IMAP 协议收取该封邮件
所以,不管是用户向邮件服务器发送邮件信息,还是邮件服务器向另一台邮件服务器发送邮件信息,都需要走 SMTP 协议
至于图中的红色叉叉代表什么,你猜?