电子邮件协议(SMTP / POP / IMAP)
电子邮件靠三个协议协同工作——SMTP 负责发信(送到邮件服务器),POP3 负责"下载到本地看",IMAP 负责"在服务器上看"
一封信怎么从 QQ 邮箱到 Gmail?
你用 QQ 邮箱给朋友发了一封邮件——看起来就像按了一个”发送”按钮那么简单。但实际上,这封邮件经历了多个协议和服务器中转。
🏫 类比:中国邮政 vs 私人快递
- SMTP = 你家楼下的邮筒——你把信投进去,邮递员取走
- QQ 邮件服务器 = 本地邮局——暂存邮件,找到收件人地址
- SMTP 服务器间转发 = 邮车——从广州邮政运到北京邮政
- Gmail 服务器 = 终点邮局——放在收件人的专用信箱里
- POP3/IMAP = 你打开信箱取信的方式
发件人写邮件
│
▼
SMTP ──→ QQ 邮件服务器
│
▼ SMTP(服务器之间转发)
Gmail 邮件服务器
│
▼ POP3 / IMAP(取信)
收件人读到邮件
SMTP——发邮件,像写封信投进邮筒
SMTP(Simple Mail Transfer Protocol) 把邮件从你的客户端发到服务器,以及服务器之间转发。
当你点”发送”时,你的邮箱客户端实际上在跟 QQ 邮件服务器进行一段对话:
C: HELO smtp.qq.com ← 客户端:你好!
S: 250 smtp.qq.com ← 服务器:你好,请说
C: MAIL FROM:<sender@qq.com> ← 发件人
S: 250 OK
C: RCPT TO:<friend@gmail.com> ← 收件人
S: 250 OK
C: DATA ← 开始写信
S: 354 Start mail input
C: Subject: Hello! ← 标题
C: This is the email body. ← 正文
C: . ← 句号结束
S: 250 OK
C: QUIT ← 拜拜
S: 221 Bye
💡 SMTP 只负责”送信”——它不管理你收件箱里的邮件。就像邮递员只负责把信塞进信箱,不管你怎么整理信箱里的信。
POP3——“把信从服务器拿下来看”
POP3(Post Office Protocol 3) 把邮件从服务器下载到你的电脑/手机——下载后通常从服务器上删掉。
手机 → 连接 Gmail → 下载所有邮件 → 断开 → 离线阅读
↑
邮件从服务器删除了
优点: 省服务器空间,离线也能看 缺点: 换手机后历史邮件全没了——因为旧的手机上已经”取走”了
🏫 类比:取报纸 POP3 就像你把信箱里的报纸全拿出来带回家——信箱空了,你手里有报纸。如果你在办公室也想要一份——不可能,报纸已经在你包里了。
IMAP——“邮件留在服务器上”
IMAP(Internet Message Access Protocol) 邮件保留在服务器上,客户端和服务器保持同步——你在手机上读了一封邮件,电脑上也会显示”已读”。
手机 ←→ Gmail 服务器 ←→ 电脑
↑
邮件统一存放在服务器
所有设备看到的是同一个"收件箱"
优点: 换设备换平台——邮件都在,已读/未读状态同步 缺点: 需要服务器空间,离线不方便(除非缓存)
🏫 类比:共享网盘的收件箱 你在学校的电脑上写了一篇论文存到网盘——回到宿舍用自己电脑打开,文件还在那里,还能看到上次编辑到哪了。IMAP 就是这样管理邮件的。
POP3 vs IMAP——你选哪个?
# 邮件客户端(比如 Outlook、Apple Mail)配置时
# 你要选:POP3 还是 IMAP?
# 选 IMAP 如果你:
# 手机、电脑、平板都要看邮件 ✓
# 希望标记已读/未读各设备同步 ✓
# 换手机不想丢邮件 ✓
# 选 POP3 如果你:
# 只用一台设备收邮件
# 服务器存储空间有限
# 经常离线看邮件
| 对比 | POP3 | IMAP |
|---|---|---|
| 邮件存储 | 下载到本地 | 保留在服务器 |
| 多设备同步 | ❌ | ✅ |
| 离线阅读 | ✅(已下载的) | ⚠️ 需缓存 |
| 默认端口(SSL) | 995 | 993 |
| 一句话 | ”取走" | "同步” |
小结
| 概念 | 用途 | 一句话 |
|---|---|---|
| SMTP | 发邮件 | ”放进邮筒” |
| POP3 | 收邮件(下载到本地) | “拿回家” |
| IMAP | 收邮件(保持同步) | “在线看” |
| 邮件流程 | 客户端→SMTP→服务器→SMTP→服务器→IMAP→收件人 | ”像寄快递一样” |
为什么先学这个? 电子邮件是互联网最早的”杀手应用”之一——理解邮件协议就是理解应用层协议设计的经典范例。最后一节看看WebSocket 与实时通信。