POP3 协议是干什么的
POP3 把服务器当「下载信箱」:客户端登录后列出邮件、取回全文,退出时提交删除标记,邮件默认从服务器移除。它只管理收件箱这一层概念,没有文件夹、标签与服务端搜索,多设备之间状态不同步。协议走 110 明文或 995 隐式 TLS,应答只有 +OK 与 -ERR 两种,实现简单,功能也因此极其有限。
基本信息
| 端口 | 110 明文 / 995 隐式 TLS |
|---|---|
| 传输层 | TCP |
| 会话模型 | 下载并删除,会话期间独占锁定信箱 |
| 应答格式 | +OK 成功、-ERR 失败,无中间状态码 |
| 消息引用 | 会话内序号,每次登录可能重排 |
| 规范 | RFC 1939 及其扩展(APOP、TOP、UIDL) |
典型使用场景
- 单设备收信:把邮件收到本地客户端长期保存
- 低带宽或离线场景:一次下载后本地阅读,不依赖网络
- 邮箱空间受限:把服务器当临时中转,取走后立即释放配额
- 历史邮件归档:把旧邮箱整体拉取下来做本地备份
- 受限环境对接:协议实现简单,嵌入式系统也容易编程
最小会话
最小会话
+OK POP3 server ready
USER alice # 认证阶段开始
+OK
PASS 应用专用密码 # 明文或 TLS 通道内传输
+OK logged in
STAT # 信箱统计:封数与总字节
+OK 2 320
RETR 1 # 取回第 1 封全文
+OK 320 octets
...(邮件正文)...
.
QUIT # 进入更新阶段,提交删除标记
+OK bye三个阶段与命令
| 阶段 | 可用命令 | 说明 |
|---|---|---|
| 认证阶段 | USER / PASS 或 APOP | 认证通过后才进入事务阶段 |
| 事务阶段 | STAT / LIST / UIDL / RETR / TOP / DELE / RSET | 可反复读取并标记删除 |
| 更新阶段 | QUIT | 提交删除标记,真正移除邮件 |
POP3 会话期间信箱被独占:同一账号的第二个客户端登录会收到 -ERR [IN-USE],排查时先确认没有其他客户端在收信,或旧会话是否卡住未退出。
「下载后删除」由客户端选项决定,各客户端默认行为不同。用户换客户端后抱怨旧邮件消失,多半是上一个客户端已经执行过删除。