理论课40分钟

31课:电子邮件服务

SMTP、POP3与IMAP

教学目标

1理解邮件发送和接收过程
2掌握SMTP和POP3协议
3了解IMAP与POP3的区别

📖 课前导入

你在公司用Outlook给客户发了一封报价邮件。10秒后,远在另一个城市的客户手机弹出了通知。

这短短10秒里,你的邮件经过了至少4个环节、3种协议的接力传递。发邮件用SMTP,收邮件用POP3IMAP,DNS负责找到对方邮件服务器的地址。

今天我们不仅学习原理,还会实际用命令行发一封邮件,亲眼看到SMTP协议的每一步交互!

🎯 本课目标:理解邮件系统架构,掌握SMTP/POP3/IMAP协议的工作原理和端口号,能配置邮件客户端,能排查常见邮件故障。

📚 一、电子邮件系统架构

邮件发送的完整过程(5步接力)

Step 1 小明用Outlook写了一封邮件发给小红(xiaohong@163.com)

MUA(邮件用户代理)= 你的邮件客户端

Step 2 Outlook通过SMTP协议(端口25/587)将邮件发送到小明的QQ邮件服务器

这一步需要身份验证(用户名+密码或授权码)

Step 3 QQ邮件服务器查DNS的MX记录,找到163.com的邮件服务器地址,通过SMTP转发

服务器之间也用SMTP,但通常不需要认证(靠IP信誉和SPF验证)

Step 4 163邮件服务器的MDA将邮件投递到小红的邮箱文件夹中存储

MDA(邮件投递代理)负责最终存储

Step 5 小红用手机邮件App通过IMAP协议(端口993)从163服务器同步邮件

或用POP3(端口995)下载邮件到本地

🌐 电子邮件传输流程

SMTP:587查MXSMTP:25IMAP:993
小明-Outlook
QQ邮件服务器
DNS服务器MX查询
163邮件服务器
小红-手机

邮件系统的三大组件

MUA(邮件用户代理)

用户的邮件客户端。

例:Outlook、Foxmail、Thunderbird、手机自带邮件App、网页版Gmail

MTA(邮件传输代理)

邮件服务器上的SMTP服务,负责发送和转发邮件。

例:Postfix、Sendmail、Exchange Server

MDA(邮件投递代理)

将邮件投递到收件人邮箱中存储,可做垃圾邮件过滤。

例:Dovecot、Procmail

知识点

DNS与邮件:MX记录

邮件服务器之间怎么互相找到对方?靠DNS的MX(Mail Exchange)记录

当QQ邮件服务器要把邮件发给163.com,它会查询:

nslookup -type=mx 163.com → 163mx01.mxmail.netease.com (优先级10)

DNS返回163.com的邮件服务器地址,QQ服务器就知道该把邮件发到哪里了。

📚 二、SMTP——发送邮件协议详解

SMTP协议概要

SMTP(Simple Mail Transfer Protocol)是一种推送协议——客户端把邮件"推"给服务器。它只负责发送,不能收邮件。

端口
25(明文)
加密端口
465(SSL)/ 587(TLS)
传输层
TCP
协议类型
文本命令式

SMTP命令交互过程(一封邮件的"对话")

SMTP是基于文本的命令-响应协议。下面是发送一封邮件的完整"对话":

// 客户端连接到邮件服务器的25端口

S: 220 smtp.qq.com ESMTP ready

C: EHLO mycomputer.local

S: 250-smtp.qq.com Hello

S: 250-AUTH LOGIN PLAIN

S: 250 STARTTLS

// 身份认证

C: AUTH LOGIN

S: 334 VXNlcm5hbWU6 (Base64编码的"Username:")

C: eGlhb21pbmdAcXEuY29t (Base64编码的用户名)

S: 334 UGFzc3dvcmQ6 (Base64编码的"Password:")

C: bXlwYXNzd29yZA== (Base64编码的密码/授权码)

S: 235 Authentication successful

// 指定发件人和收件人

C: MAIL FROM:<xiaoming@qq.com>

S: 250 OK

C: RCPT TO:<xiaohong@163.com>

S: 250 OK

// 发送邮件内容

C: DATA

S: 354 Start mail input, end with <CRLF>.<CRLF>

C: Subject: 报价单

C: From: xiaoming@qq.com

C: To: xiaohong@163.com

C:

C: 你好,附件是最新的报价单,请查收。

C: .

S: 250 OK: Message queued

C: QUIT

S: 221 Bye

EHLO:跟服务器打招呼,Extended HELO

AUTH LOGIN:身份认证(现在必须认证才能发信)

MAIL FROM:声明发件人地址

RCPT TO:声明收件人地址(可以有多个)

DATA:开始传送邮件内容,以单独一行"."结束

QUIT:结束会话

用nslookup查询邮件服务器MX记录
// 模拟终端 - 点击"执行下一条"或按回车运行命令
// 共 2 条命令,已执行 0
C:\>

📚 三、POP3与IMAP——收取邮件协议

POP3(端口110/995)

Post Office Protocol 3 — 像去邮局取信

  • • 将邮件下载到本地,默认从服务器删除
  • • 离线也能阅读已下载的邮件
  • • 只能在一台设备上看到完整邮件
  • • 不支持在服务器上创建文件夹
  • • 协议简单,命令少(USER/PASS/LIST/RETR/DELE/QUIT)
适用场景:存储空间有限的服务器、只用一台设备收邮件

IMAP(端口143/993)✅推荐

Internet Message Access Protocol — 像云端同步

  • • 邮件保留在服务器
  • 多设备同步:手机、电脑、平板看到同样的邮件状态
  • • 支持在服务器上创建、重命名、删除文件夹
  • • 可以只下载邮件头部,需要时再下载正文和附件
  • • 支持邮件标记(已读/星标/删除等)同步
适用场景:多设备用户、企业邮箱(当今主流选择)
对比项POP3IMAP
端口号110 / SSL:995143 / SSL:993
邮件存储位置下载到本地保留在服务器
多设备同步
服务器空间占用多(长期保存)
离线阅读✅(已下载的)需客户端缓存
文件夹管理❌ 仅收件箱✅ 完整文件夹
按需下载❌ 全部下载✅ 先看标题,按需下载正文
小贴士

为什么现在都推荐IMAP?

想象一下:你用POP3在办公室电脑上收了一封重要邮件。下班后想在手机上再看一遍——找不到了!因为POP3已经把它从服务器删除了。

用IMAP就没这个问题:邮件一直在服务器上,所有设备看到的都是同一份数据。这就是为什么Gmail、Outlook 365等现代邮箱默认都用IMAP。

📚 四、邮件协议端口速查(必背)

协议作用明文端口加密端口传输层方向
SMTP发送/转发25465/587TCP推→
POP3收取(下载)110995TCP←拉
IMAP收取(同步)143993TCP←拉

记忆口诀:发(SMTP)25,收(POP3)110,同步(IMAP)143。加密就是SSL的那组:465/587、995、993。

🔧 五、实践:配置邮件客户端

QQ邮箱在Outlook中的配置参数

设置项发送服务器(SMTP)接收服务器(IMAP)
服务器地址smtp.qq.comimap.qq.com
端口号465 或 587993
加密方式SSL/TLSSSL/TLS
用户名完整邮箱地址(如 yourname@qq.com)
密码⚠️ 不是QQ密码!需要在QQ邮箱设置中生成授权码
注意

常见配置错误和排查

错误1:"发送失败,连接被拒绝"

→ 检查端口号是否正确。很多ISP封锁了25端口,改用587或465。

错误2:"身份验证失败"

→ QQ/163邮箱需要使用授权码而非登录密码。去邮箱设置→账户→开启IMAP→生成授权码。

错误3:"证书错误/不安全连接"

→ 确认加密方式选择了SSL/TLS,而不是"无"。端口和加密方式必须配套。

错误4:"能收不能发"或"能发不能收"

→ 收和发是独立的两个配置,分别检查SMTP和IMAP/POP3的服务器地址和端口。

用telnet测试SMTP服务器是否可达
// 模拟终端 - 点击"执行下一条"或按回车运行命令
// 共 2 条命令,已执行 0
C:\>

📚 六、邮件安全机制

为什么垃圾邮件能冒充你的老板发信?因为SMTP协议设计时没有身份验证机制。现代邮件安全靠以下三道防线:

SPF(发件人策略框架)

在DNS中声明"哪些IP被授权代表我的域名发邮件"。收件服务器检查发件IP是否在SPF记录中。

v=spf1 include:spf.qq.com ~all

DKIM(域名密钥签名)

发件服务器用私钥对邮件签名,收件服务器用DNS中的公钥验证签名,确保邮件未被篡改。

类比:给邮件盖一个防伪章。

DMARC(报告和合规)

基于SPF和DKIM的结果,告诉收件服务器对验证失败的邮件应该怎么处理(放行/隔离/拒绝)。

三者配合使用,大幅降低钓鱼邮件成功率。

小贴士

实际中如何检查邮件安全?

在Gmail/Outlook中打开一封邮件,查看"原始邮件"或"邮件头",可以看到:

Authentication-Results: spf=pass; dkim=pass; dmarc=pass

三个pass表示这封邮件通过了所有安全验证,可信度很高。

电子邮件工作原理与客户端配置

动画演示邮件从发送到接收的完整流程,实操配置Outlook邮件客户端的SMTP/IMAP设置,演示MX记录查询

15:00
电子邮件工作原理与客户端配置推荐视频15:00

动画演示邮件从发送到接收的完整流程,实操配置Outlook邮件客户端的SMTP/IMAP设置,演示MX记录查询

✅ 课堂小测

随堂测验

1/6

发送邮件使用什么协议?它是推送还是拉取?

📋 本课小结

1

邮件架构:MUA(客户端) → MTA(SMTP服务器) → MDA(投递) → MUA(收件客户端)。

2

SMTP(端口25/465/587):推送协议,负责发送和转发邮件。

3

POP3(端口110/995):拉取下载,简单但不同步。IMAP(端口143/993):拉取同步,推荐使用。

4

MX记录:DNS中专门用于查找邮件服务器的记录类型。

5

邮件安全:SPF + DKIM + DMARC 三重防线防止邮件伪造。

🤔 课后思考与实践

动手实验

  1. nslookup -type=mx 查询你学校/公司邮箱域名的MX记录,记录结果。
  2. 在QQ邮箱设置中开启IMAP服务,生成授权码,然后在Outlook或Foxmail中配置QQ邮箱。
  3. 给同学发一封邮件,然后在邮件头中查看SPF/DKIM验证结果。

思考题

  1. 为什么现在大多数邮箱服务商都默认使用IMAP而非POP3?
  2. 如果公司防火墙封锁了25端口,员工还能用邮件客户端发邮件吗?怎么解决?
  3. 企业为什么需要搭建自己的邮件服务器,而不直接用免费邮箱?