背景
我们常使用邮件客户端,如 Foxmail 、Outlook 等收发邮件。大家应该了解邮件协议基础知识吧,发送邮件是通过 SMTP 协议完成,收取邮件则走的是 POP3 协议。由于工作原因,笔者曾对邮件协议的通信过程进行过完整的分析,这里承接上一篇 SMTP 协议,继续分析 POP3 协议的处理流程。
POP3 协议基础
POP3全称为「 Post Office Protocol - Version 3」,这是来自百度百科的解释:
是 TCP/IP 协议族中的一员,由 RFC1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。提供了 SSL 加密的 POP3 协议被称为 POP3S。
POP 协议支持 “离线” 邮件处理。其具体过程是:邮件发送到服务器上,电子邮件客户端调用邮件客户机程序以连接服务器,并下载所有未阅读的电子邮件。
这种离线访问模式是一种存储转发服务,将邮件从邮件服务器端送到个人终端机器上,一般是 PC 机或 MAC。一旦邮件发送到 PC 机或 MAC上,邮件服务器上的邮件将会被删除。但目前的 POP3 邮件服务器大都可以 “只下载邮件,服务器端并不删除”,也就是改进的 POP3 协议。
使用经验:由于企业邮箱容量有限,一般建议收取邮件后,定期删除邮件服务器上的邮件,否则很容易出现邮箱已满、无法收到邮件的问题。
Foxmail 的配置方式为:
这个配置里面可以选择保留期限,或者立即删除。
POP3 相关的命令集
收取过程
1.用户认证
USER
和 PASS
命令完成认证:
2. STAT
状态统计
STAT
+OK 28 41056779
STAT
请求邮箱资料信息,服务器段返回邮箱中邮件总数 28 封,总字节数 41056779 。
**3. LIST
和 UIDL
**
这两个命令用于获取邮件列表和邮件唯一标识 ID,服务器返回 OK 及邮件大小和标识。
4.RETR
收取邮件文本
邮件客户端比对自己上次收到到的邮件列表后,使用RETR 28
请求收取新邮件:
5.结束会话
收取完成,会话结束!