【从0开始学习计算机网络】| 邮件协议入门:SMTP、POP3、IMAP

🌈个人主页 :一条泥憨鱼(欢迎各位大佬莅临)

🎬精选专栏传送门:

❄️《数据结构》 ❄️《AI与Agent那些事》

❄️《从0开始学计算机网络》 ❄️《后端开发》

你有没有想过这么一个问题:每天上班第一件事就是打开邮箱客户端,或者掏出手机刷一下 Gmail,看到新邮件弹出来,顺手回一封。整个过程行云流水,但你有没有停下来问过------我点下"发送"按钮的那一瞬间,这封邮件到底经历了什么?它是怎么穿过网线、越过服务器,最后出现在对方手机上的?

这个问题的答案,就藏在三个缩写里:SMTP、POP3、IMAP

别被这三个词吓到,它们本质上就是三个"邮局规矩"。今天把这套规矩讲明白。等你下次配置邮件客户端,看到这三个词的时候,心里就有底了。

先搞清楚:邮件是怎么从 A 到 B 的?

我们先把"电子邮件的传输"想象成"传统邮局的寄信"。

你写了一封信,想寄给远方的朋友。你会怎么做?把信丢进邮筒。邮递员把信收走,送到你本地的邮局。本地邮局根据地址,把信转送到对方城市的邮局。对方邮局再把信投递到朋友的邮箱里。朋友打开邮箱,把信取出来看。

电子邮件的流程,几乎一模一样。只不过"邮筒""邮局""邮箱"都变成了服务器和软件:

  • 你用的邮件客户端(比如 Outlook、手机自带邮件 App)------就是"你本人"

  • 你的邮件发送服务器(比如 QQ 邮箱的 smtp.qq.com)------就是你"本地的邮局"

  • 对方的邮件接收服务器(比如 Gmail 的服务器)------就是"对方城市的邮局"

  • 对方的邮件客户端------就是"你的朋友"

一封邮件从你手里发出去,到对方看到,中间要经过四段路程:

  1. 你的客户端 → 你的发送服务器

  2. 你的发送服务器 → 对方的接收服务器

  3. 对方的接收服务器 → 对方的客户端(这一步其实是对方主动来"取"的)

注意看,前三步是"送",最后一步是"取"。这个区别很重要。因为负责"送"的协议和负责"取"的协议,是完全不同的两套东西。

现在,这三个缩写的分工已经浮出水面了:

  • SMTP负责"送"------管第一段和第二段路

-POP3 和 IMAP负责"取"------管第三段路

下面一个个说。

SMTP------负责"寄出去"的协议

SMTP 的全称是 Simple Mail Transfer Protocol,简单邮件传输协议。

名字里有个"传输",你就知道它是干搬运的活。具体来说,SMTP 管两件事:

第一,把你客户端上写好的邮件,推到你的发送服务器上。

第二,把你的发送服务器上的邮件,转发到对方的接收服务器上。

注意我用了一个词------"推"。

SMTP 是典型的"推"协议。它就像那个骑着摩托车从你手里接过信,然后一路狂飙送到对方邮局的快递员。它只管把信送到目的地邮局,至于对方邮局怎么把信交到收件人手里,它不关心,也管不着。

给你举个具体点的例子。假设你用 QQ 邮箱给一个 Gmail 地址发邮件。你点下发送后,发生的事是这样的:

  1. 你的 QQ 邮箱客户端(网页版也好,手机 App 也好),通过 SMTP 协议,把邮件推到 QQ 的邮件服务器上。这一步用的服务器地址通常是 smtp.qq.com

  2. QQ 的邮件服务器一看收件人是 Gmail 的地址,知道自己送不到,于是通过 SMTP 协议,把邮件转发给 Gmail 的服务器。

  3. Gmail 的服务器收到邮件,存下来,等着收件人来取。

整个过程,SMTP 出场了两次。这就是为什么你在配置任何邮件客户端的"发送服务器"时,看到的都是 SMTP 开头的地址------smtp.qq.comsmtp.163.comsmtp.gmail.com

关于端口,你可能会在配置界面看到25、465、587 这几个数字。简单记一下就行:25 是 SMTP 的老端口,明文传输,现在很多服务器默认关了;465 和 587 是加密传输用的,其中 587 是目前最主流的提交端口。你不需要记死,客户端一般会帮你选好。

一句话总结:SMTP 只管把邮件"寄出去",不管"收进来"。

POP3------把邮件"下载"到本地

邮件到了对方的服务器上,对方的客户端怎么把它拿下来看?这就是 POP3 和 IMAP 的事了。

POP3 的全称是 Post Office Protocol version 3,邮局协议第三版。

名字里有"邮局",你就把它想象成邮局里的一个柜台。POP3 的工作方式,特别像你亲自跑到邮局,跟柜台说:"把我的信都给我。"然后你把信全部抱回家,邮局里的信箱就空了。

对,你没看错。POP3 的核心特点就是:把邮件从服务器上下载到本地设备,然后默认把服务器上的邮件删掉。

这个设计在互联网早期特别合理。那时候大家基本只有一台电脑,邮件下载到本地,服务器上删掉,省存储空间,而且本地打开速度快,没有网络也能看已经下载的邮件。

但放到今天,POP3 的缺点就很明显了:

  • 你在手机上用 POP3 收了邮件,服务器上的邮件就被删了。等你回到办公室打开电脑想再看一遍?没了。

  • 你在电脑上把一封邮件标记为"已读",手机上是不知道的。因为两边各存各的,互不通信。

  • 你想在手机上看一封 3 年前的旧邮件?对不起,那封邮件当年已经被你手机 POP3 下载后删掉了。

所以,POP3 现在比较适合的场景是:**你就一台设备,而且希望邮件只存在这台设备上,不想在服务器上留底。**比如你有个临时邮箱,想批量把邮件拉下来归档,拉完服务器清空,那 POP3 就很顺手。

POP3 的默认端口是 110,加密版本是 995,知道一下就行。

总结:POP3 是把邮件"下载"到本地,下载完服务器上通常就没了。

IMAP------邮件"留在服务器上"

IMAP 的全称是 Internet Message Access Protocol,互联网消息访问协议。

如果说 POP3 是"把信取回家",那 IMAP 就是"在邮局给你开了一个私人信箱"。你的所有邮件都存放在邮局(服务器)里,你手里拿着的只是一把钥匙。你想看哪封信,就打开信箱翻一翻;看完了,信还留在信箱里,下次换个钥匙(换台设备)照样能看。

IMAP 的核心特点:邮件始终保存在服务器上,客户端只是"查看"服务器上的一份副本。

这意味着什么?意味着多设备同步变得极其自然:

  • 你在手机上把一封邮件标记为"已读",这个状态会同步到服务器上。等你打开电脑,那封邮件在电脑上也是"已读"的。

  • 你在电脑上把一封邮件拖进"工作"文件夹,手机上打开邮箱,那封邮件也在"工作"文件夹里。

  • 你所有的邮件都安安静静地躺在服务器上,不管你换几台设备,只要登录同一个邮箱账号,看到的都是同一份邮件。

这就是 IMAP 和 POP3 最本质的区别:POP3 是"移动"邮件(从服务器搬到本地),IMAP 是"映射"邮件(服务器是唯一真源,客户端只是镜子)。

当然,IMAP 也不是没有代价。因为邮件都留在服务器上,你的邮箱存储空间会越用越满(现在 Gmail、QQ 邮箱都给了很大的免费空间,一般够用)。另外,IMAP 需要联网才能看到邮件内容,纯离线状态下你只能看到之前客户端缓存过的内容。

IMAP 的默认端口是 143,加密版本是 993。

总结:IMAP 让邮件留在服务器上,所有设备随时同步查看。

三个协议放一起对比 + 实际选择建议

说了这么多,我们来个痛快的对比表,一眼看明白:

| 对比维度 | SMTP | POP3 | IMAP |

| 职责 | 发送邮件 | 接收邮件 | 接收邮件 |

| 邮件存储位置 | 不存储,只管转发 | 下载到本地后服务器删除 | 始终保存在服务器 |

| 多设备同步 | 不涉及 | 不支持 | 支持(已读/已删/移动均同步) |

| 离线访问 | 不涉及 | 可以看已下载的邮件 | 只能看缓存过的邮件 |

| 适用场景 | 所有发信需求 | 单设备 + 希望本地留存 | 多设备 + 需要随时访问旧邮件 |

看完这个表,配置邮件客户端的时候怎么选

**日常使用,选 IMAP。**因为你肯定不止一台设备------手机、平板、公司电脑、家里电脑。IMAP 能让你在任何设备上看到一模一样的邮箱状态,这是现代人的刚需。

POP3 用在哪? 如果你有一个不太重要的邮箱,比如注册网站用的垃圾邮箱,你想把所有邮件一次性拉到电脑里存档,然后让服务器清空,那 POP3 就是为你准备的。

**SMTP 就不用选了。**不管你是用 IMAP 还是 POP3 收邮件,发送邮件永远是 SMTP。所以你会发现,配置邮箱时,"接收邮件服务器"让你在 POP3 和 IMAP 之间二选一,而"发送邮件服务器"永远是 SMTP 开头的地址。

最后送大家一个口诀,特别好记:

> 发邮件用 SMTP,收邮件用 POP3 或 IMAP;要同步就选 IMAP,要本地就选 POP3。

最后说两句

现在你已经知道这三个协议各自是干嘛的了。下次配置 Outlook 或者手机邮件 App,再看到 SMTP、POP3、IMAP 这三个词,就不会再一脸懵了------你甚至能跟同事解释,为什么你的邮件在手机上读了,电脑上也会显示已读(因为用的是 IMAP)。

如果你想再深入一步,有个特别有体感的玩法:用命令行 telnet 手动连上一个 SMTP 服务器,亲手输入几条命令"手写"一封邮件发出去。那种感觉,比任何教程都来得直观。等你有兴趣了,可以自己搜一下"telnet smtp 发送邮件",试试看。

邮件协议的世界,其实就这么大。搞懂了这三个词,你就已经入门了。

相关推荐
LJianK12 小时前
服务器、节点 、 集群、分布式
运维
姚不倒2 小时前
etcd 学习系列(四):存储模型 —— WAL 和 Snapshot 是如何配合的
运维·etcd
come112343 小时前
Nginx `location` 配置说明(后端开发版)
运维·nginx
lpfasd1233 小时前
2026年第36周GitHub趋势周报:Agent技能化、MCP工具化与AI工程化加速
人工智能·github
SkyWalking中文站10 小时前
SkyWalking 11 与 BanyanDB 0.11:在存储引擎内部实现 Trace 尾部采样
运维·监控·自动化运维
姚不倒10 小时前
etcd 学习系列(二):集群架构 —— 3 节点是如何工作的
运维·架构·etcd
pt104311 小时前
网络自动化Python课程:Cisco PyATS网络自动化测试框架
运维·自动化
Johny_Zhao12 小时前
网络安全等级保护测评实施方案
linux·网络·人工智能·网络安全·信息安全·云计算·等保测评·系统运维·itsm
小袁拒绝摆烂12 小时前
Jenkins部署经验
运维·jenkins