← 返回题目列表

SMTP、POP3、IMAP 有什么区别?一封邮件是怎么发出和收到的?

高频 中等 第 10 / 27 题 更新于 2026/07/28
SMTPPOP3IMAP邮件协议

简化版

三个协议分工明确SMTP 负责「发信 / 服务器之间中转」POP3 和 IMAP 负责「从服务器收信」。记忆锚点可以放在动词上:发信用 SMTP,收信用 POP3 或 IMAP。POP3 和 IMAP 的区别:POP3 把邮件下载到本地后通常从服务器删掉(邮件在你这台设备上),适合单设备;IMAP 邮件始终留在服务器,本地只是同步一份,你在手机、电脑、网页看到的状态(已读、文件夹)完全一致,适合多设备——现在基本都用 IMAP

详细版

协议作用方向默认端口(明文/加密)
SMTP发送邮件、服务器间中转客户端→服务器、服务器→服务器25 / 465(SSL)、587(STARTTLS)
POP3从服务器下载邮件服务器→客户端110 / 995(SSL)
IMAP从服务器同步邮件服务器→客户端143 / 993(SSL)

POP3 vs IMAP 的核心差异:

维度POP3IMAP
邮件存哪下载到本地,服务器上常删除留在服务器,本地只同步
多设备❌ 状态不同步✅ 已读/文件夹全同步
服务器空间省(下完就删)占(都留着)
离线阅读好(都在本地)需缓存
只下载邮件头不支持✅ 支持(先看标题再决定下载正文)
适用单一设备、老式用法多端同步,现代主流

一封邮件的完整旅程alice@a.combob@b.com):

① Alice 的邮件客户端 ──SMTP──→ a.com 发件服务器          (投递到发件方服务器)
② a.com 服务器 ──DNS 查 b.com 的 MX 记录──→ 找到 b.com 收件服务器地址
③ a.com 服务器 ──SMTP──→ b.com 收件服务器                (服务器间中转)
④ b.com 服务器把邮件存进 Bob 的邮箱
⑤ Bob 的客户端 ──IMAP/POP3──→ b.com 服务器               (Bob 来收信)

关键边界:全程「发」的动作都是 SMTP(①②③是发/中转),只有最后 Bob「取信」(⑤)才用 POP3/IMAP。

完整版教学

一、为什么发信和收信要用不同协议

初学者最困惑的是「为什么不用一个协议搞定收发」。原因在于收和发是两件方向、机制都不同的事

  • 发信是「推(push)」——你要把邮件主动送出去,而且可能要接力中转(你的服务器 → 对方服务器)。这套「推送 + 服务器间转发」的机制就是 SMTP(Simple Mail Transfer Protocol)。
  • 收信是「取(pull)」——邮件已经躺在你的邮箱服务器里,你要主动去把它拉下来看。这套「从邮箱取件」的机制是 POP3IMAP

所以邮件系统天然是「SMTP 管发和中转,POP3/IMAP 管取」的分工。你的邮件客户端(如 Outlook)里要同时配「发件服务器(SMTP)」和「收件服务器(IMAP/POP3)」,就是这个道理。

二、SMTP:邮件是怎么「接力」送到对方的

SMTP 最关键的角色是服务器之间的中转(relay)。跨域邮件不是你直接连到对方服务器,而是接力

  1. 你的客户端用 SMTP 把邮件交给自己的发件服务器(如 smtp.a.com)。
  2. 发件服务器要把信送到 bob@b.com,它先做 DNS 查询 b.com 的 MX 记录(Mail eXchange,专门记录「谁负责收 b.com 的邮件」),拿到对方收件服务器地址。
  3. 发件服务器再用 SMTP 连上 b.com 的收件服务器,把邮件交过去。
  4. b.com 服务器把邮件放进 Bob 的邮箱,等 Bob 来取。

关键点:MX 记录是邮件路由的核心——发件服务器靠查目标域名的 MX 记录,才知道该把信送到哪。这也是「邮件 + DNS」结合的经典考点。

三、POP3 与 IMAP:邮件到底存在哪,决定了一切

POP3 和 IMAP 的所有差异,根源都在「邮件主体存在哪」

POP3 —— 邮件属于「本地」。它的设计假设是「一个人、一台电脑」:客户端连服务器,把邮件下载到本地,然后(默认)从服务器删除。邮件此后就活在你这台设备上。

  • 优点:省服务器空间离线随便看(都在本地)。
  • 致命缺陷:多设备用就乱套。你在电脑上下载并删了服务器的信,手机再连就看不到那封信了;已读/未读、文件夹分类也各设备独立、不同步

IMAP —— 邮件属于「服务器」。它的设计假设是「一个人、多台设备」:邮件始终存在服务器上,客户端只是同步一份视图。你的所有操作(已读、删除、移动到某文件夹、加星标)都同步回服务器

  • 优点:多端完全一致——手机标已读,电脑上也是已读;网页建的文件夹,客户端也看得到。还支持只下载邮件头(先看标题/发件人,需要时再拉正文和附件),省流量。
  • 代价:占服务器存储(邮件都留着),离线需要本地缓存。

如今几乎全用 IMAP——因为现代人手机、电脑、网页多端收信,只有 IMAP 能保证状态一致。POP3 只在「单设备 + 想把邮件搬到本地存档」的老式场景才用。

四、邮件安全三件套:为什么邮件容易被伪造

SMTP 诞生于「大家互相信任」的早期互联网,协议本身不验证发件人身份——所以伪造发件人地址非常容易(钓鱼邮件的根源)。为此后来加了三个「反伪造 / 反垃圾」机制,面试常被追问:

  • SPF(Sender Policy Framework):域名在 DNS 里声明「哪些 IP 有权代表我发信」。收件方检查来信 IP 在不在这个名单里。
  • DKIM(DomainKeys Identified Mail):发件服务器用私钥给邮件签名,收件方用 DNS 里公布的公钥验签,确认邮件内容没被篡改、确实来自该域名。
  • DMARC:基于 SPF 和 DKIM 的策略——告诉收件方「如果 SPF/DKIM 验证失败,该拒收还是进垃圾箱」,并可要求发送报告

这三者都依赖 DNS 记录来发布策略和公钥,是现代邮件反钓鱼的基石。

五、加密:别再用明文端口

三个协议最初都是明文(25/110/143),密码和内容全裸奔。现在都有加密版本,配置邮箱时优先用:

  • SMTP:465(SSL/TLS)或 587(STARTTLS,先明文连接再升级为加密)。25 端口如今多用于服务器间中转,客户端提交邮件推荐 587。
  • POP3:995(SSL)。
  • IMAP:993(SSL)。

STARTTLS 与「一上来就 SSL」的区别:STARTTLS 是在普通端口上先建明文连接、再用命令升级到 TLS;SSL 端口(465/995/993)是从连接建立就加密。两者都能加密,只是升级时机不同。

六、常见误区与追问

考点正确口径
SMTP发送邮件、服务器之间转发邮件
POP3客户端下载邮件,偏本地保存
IMAP客户端同步邮箱状态,适合多端一致
sender client -> SMTP -> sender mail server
sender server -> SMTP -> recipient mail server
recipient client -> IMAP/POP3 -> read mail

邮件协议要分发送和收取:SMTP 管投递,IMAP/POP3 管用户取信。

  • 误区:SMTP 用来收邮件。 SMTP 主要负责发送和中继投递,收取通常用 IMAP 或 POP3。
  • 误区:POP3 和 IMAP 没区别。 POP3 偏下载到本地,IMAP 保留服务器状态并支持多端同步。
  • 误区:邮件安全只靠登录密码。 还涉及 TLS、SPF、DKIM、DMARC、反垃圾和附件安全。
  • 追问:MX 记录和 SMTP 什么关系? 发送方服务器通过 DNS MX 找到收件域的邮件服务器,再用 SMTP 投递。
  • 追问:IMAP 为什么适合多设备? 邮件、文件夹、已读状态保存在服务器,多设备看到一致状态。
  • 追问:STARTTLS 是什么? 在明文连接上升级到 TLS,加密后续邮件协议交互。

七、加强记忆

发信用 SMTP,收信用 POP3/IMAP。SMTP 还负责服务器间中转(靠查目标域名的 MX 记录找对方收件服务器)。POP3 与 IMAP 的根本差异在邮件存哪:POP3 下载到本地、服务器删除(单设备);IMAP 留在服务器、多端同步已读/文件夹(多设备主流,还能只下载邮件头)。SMTP 不验证发件人,反伪造靠 SPF/DKIM/DMARC(基于 DNS)。加密端口:SMTP 465/587、POP3 995、IMAP 993。