邮件协议详解:SMTP、POP3、IMAP 与安全机制
1654 字
8 分钟
邮件协议详解:SMTP、POP3、IMAP 与安全机制
邮件协议概述
电子邮件系统涉及多个协议的协作,主要分为两大类:
| 类别 | 协议 | 用途 |
|---|---|---|
| 发送 | SMTP | 邮件传输和投递 |
| 接收 | POP3、IMAP | 从邮件服务器获取邮件 |
SMTP:简单邮件传输协议
SMTP(Simple Mail Transfer Protocol)负责将邮件从发送方传递到接收方邮件服务器,是整个邮件系统的核心传输协议。
基本参数
- 默认端口:25(明文)、465(SSL/TLS,已废弃)、587(STARTTLS,推荐)
- 传输层:TCP
- 命令字符限制:仅 ASCII
工作流程
发送方 MUA → 发送方 MTA → ... → 接收方 MTA → 接收方 MDA → 接收方 MUA| 角色 | 全称 | 说明 |
|---|---|---|
| MUA | Mail User Agent | 邮件用户代理(Outlook、Thunderbird 等客户端) |
| MTA | Mail Transfer Agent | 邮件传输代理(Postfix、Sendmail 等) |
| MDA | Mail Delivery Agent | 邮件投递代理(将邮件存入用户邮箱) |
常用命令
| 命令 | 格式 | 说明 |
|---|---|---|
| HELO / EHLO | EHLO example.com | 向服务器标识自己,EHLO 启用 ESMTP 扩展 |
| AUTH LOGIN | AUTH LOGIN | 客户端认证 |
| MAIL FROM | MAIL FROM:<user@example.com> | 指定发件人 |
| RCPT TO | RCPT TO:<user@example.com> | 指定收件人 |
| DATA | DATA | 开始传输邮件正文,以 . 单独一行结束 |
| QUIT | QUIT | 断开连接 |
| RSET | RSET | 重置会话,清除发件人和收件人 |
手动发送邮件示例
# 连接 SMTP 服务器telnet smtp.example.com 25
# 会话示例EHLO myhost.example.comMAIL FROM:<sender@example.com>RCPT TO:<recipient@example.com>DATAFrom: sender@example.comTo: recipient@example.comSubject: Test Email
This is a test email body..QUITSMTP 响应码
| 响应码 | 含义 |
|---|---|
| 220 | 服务就绪 |
| 250 | 命令执行成功 |
| 334 | 等待认证输入 |
| 354 | 开始邮件输入(DATA 命令后) |
| 421 | 服务不可用,关闭连接 |
| 450 | 邮箱不可用(临时) |
| 550 | 邮箱不可用(永久) |
| 554 | 传输失败 |
POP3:邮局协议 v3
POP3(Post Office Protocol version 3)用于从邮件服务器下载邮件到本地客户端,默认下载后删除服务器上的邮件。
基本参数
- 默认端口:110(明文)、995(SSL/TLS)
- 传输层:TCP
- 消息最大长度:512 字节(含回车换行)
工作状态
POP3 会话存在三种状态:
| 状态 | 说明 |
|---|---|
| 认证状态 | 客户端通过 USER/PASS 或 APOP 登录 |
| 事务状态 | 客户端管理邮件(读取、删除、统计) |
| 更新状态 | 会话结束时,服务器执行删除等操作 |
常用命令
| 命令 | 格式 | 说明 |
|---|---|---|
| USER | USER username | 提供用户名 |
| PASS | PASS password | 提供密码 |
| STAT | STAT | 获取邮件总数和总大小 |
| LIST | LIST [msg] | 列出邮件编号和大小 |
| RETR | RETR 1 | 获取指定编号的邮件内容 |
| DELE | DELE 1 | 标记指定邮件为删除 |
| RSET | RSET | 撤销所有 DELE 标记 |
| TOP | TOP 1 10 | 获取邮件前 N 行内容 |
| UIDL | UIDL [msg] | 获取邮件的唯一标识符 |
| QUIT | QUIT | 提交并关闭连接 |
手动收取邮件示例
telnet pop.example.com 110
# 会话示例USER myusernamePASS mypasswordSTATLISTRETR 1DELE 1QUITPOP3 特点
- 优点:简单,离线可读,节省服务器空间
- 缺点:仅支持单设备访问,默认删除服务器副本
IMAP:互联网消息访问协议
IMAP(Internet Message Access Protocol)允许客户端直接管理服务器上的邮件,支持多设备同步。
基本参数
- 默认端口:143(明文)、993(SSL/TLS)
- 传输层:TCP
- 特点:邮件存储在服务器,支持文件夹/标签管理
常用命令
| 命令 | 格式 | 说明 |
|---|---|---|
| LOGIN | LOGIN user pass | 用户登录 |
| SELECT | SELECT INBOX | 选择邮箱文件夹 |
| FETCH | FETCH 1 BODY[] | 获取邮件内容 |
| SEARCH | SEARCH UNSEEN | 搜索邮件 |
| STORE | STORE 1 +FLAGS (\Seen) | 修改邮件标记 |
| CREATE | CREATE folder | 创建文件夹 |
| LIST | LIST "" "*" | 列出所有文件夹 |
| EXAMINE | EXAMINE INBOX | 只读选择文件夹 |
| LOGOUT | LOGOUT | 断开连接 |
IMAP 标记
| 标记 | 含义 |
|---|---|
\Seen | 已读 |
\Answered | 已回复 |
\Flagged | 已标记/星标 |
\Deleted | 已删除 |
\Draft | 草稿 |
POP3 vs IMAP
| 对比项 | POP3 | IMAP |
|---|---|---|
| 邮件存储位置 | 下载到本地 | 保留在服务器 |
| 多设备同步 | 不支持 | 支持 |
| 离线访问 | 支持 | 需提前缓存 |
| 服务器空间 | 较少占用 | 持续占用 |
| 文件夹管理 | 不支持 | 支持 |
| 部分下载 | TOP 命令有限支持 | 原生支持 |
| 适用场景 | 单设备、离线阅读 | 多设备、团队协作 |
MIME:多用途互联网邮件扩展
MIME(Multipurpose Internet Mail Extensions)扩展了 SMTP 的能力,使其支持非 ASCII 文本和附件。
关键头部
| 头部 | 值示例 | 说明 |
|---|---|---|
| MIME-Version | 1.0 | MIME 版本 |
| Content-Type | text/plain; charset=utf-8 | 内容类型和编码 |
| Content-Transfer-Encoding | base64 | 传输编码方式 |
| Content-Disposition | attachment; filename="file.pdf" | 附件文件名 |
常见 Content-Type
| 类型 | 说明 |
|---|---|
text/plain | 纯文本 |
text/html | HTML 邮件 |
multipart/alternative | 同时包含纯文本和 HTML |
multipart/mixed | 包含附件 |
application/pdf | PDF 附件 |
image/png | 图片附件 |
邮件安全机制
SPF:发件人策略框架
SPF(Sender Policy Framework)在 DNS 中发布 TXT 记录,声明哪些服务器有权以该域名发送邮件,防止发件人地址伪造。
SPF 记录示例:
v=spf1 ip4:192.168.1.0/24 include:_spf.google.com ~all限定符说明:
| 限定符 | 含义 |
|---|---|
+(Pass) | 通过(默认) |
-(Fail) | 拒绝 |
~(SoftFail) | 软拒绝,标记但不丢弃 |
?(Neutral) | 中立,不做判断 |
使用 dig 查询 SPF 记录:
dig +short example.com TXTDKIM:域密钥识别邮件
DKIM(DomainKeys Identified Mail)通过数字签名验证邮件来源的真实性和完整性。
DKIM 签名头部示例:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com; s=selector1; h=from:to:subject:date; bh=base64_body_hash; b=base64_signature;查询 DKIM 公钥:
dig +short selector1._domainkey.example.com TXTDMARC:基于域的消息认证、报告和一致性
DMARC(Domain-based Message Authentication, Reporting and Conformance)构建在 SPF 和 DKIM 之上,定义域名的邮件认证策略。
DMARC 记录示例:
v=DMARC1; p=reject; rua=mailto:dmarc@example.com; pct=100策略(p)说明:
| 策略 | 含义 |
|---|---|
none | 不处理,仅报告 |
quarantine | 隔离(标记为垃圾邮件) |
reject | 拒绝 |
查询 DMARC 记录:
dig +short _dmarc.example.com TXT邮件安全机制协作流程
发件方 收件方 │ │ ├─ 1. 发送邮件 │ │ │ │ │ ├─ DKIM 签名 ─────────────→ │ │ │ │ ├─ 2. SMTP 传输 ───────────────→ │ │ │ │ │ │ 3. 收件方 MTA │ │ │ │ │ ├─ 检查 SPF: 来源 IP 是否授权? │ │ ├─ 检查 DKIM: 签名是否有效? │ │ └─ 执行 DMARC: 根据策略处理 │ │ │ │ │ 4. 投递或拒绝常用 DNS 记录速查
| 记录类型 | 查询命令 | 用途 |
|---|---|---|
| MX 记录 | dig +short example.com MX | 查看邮件服务器 |
| SPF 记录 | dig +short example.com TXT | 查看发件策略 |
| DKIM 公钥 | dig +short sel._domainkey.example.com TXT | 查看签名公钥 |
| DMARC 策略 | dig +short _dmarc.example.com TXT | 查看认证策略 |
| PTR 反向解析 | dig -x <邮件服务器IP> | 反向解析(防垃圾邮件) |
总结
| 协议 | 端口 | 用途 | 场景 |
|---|---|---|---|
| SMTP | 25 / 587 | 发送邮件 | 邮件传输 |
| SMTP(S) | 465 | 加密发送 | 邮件传输 + SSL/TLS |
| POP3 | 110 / 995 | 下载邮件到本地 | 单设备阅读 |
| IMAP | 143 / 993 | 管理服务器邮件 | 多设备同步 |
| SPF | DNS TXT | 验证发件服务器 | 防伪造 |
| DKIM | DNS TXT | 验证邮件完整性 | 防篡改 |
| DMARC | DNS TXT | 定义认证策略 | 防欺诈 |
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
邮件协议详解:SMTP、POP3、IMAP 与安全机制
https://blog.cllll.link/posts/email-protocols-guide/ 最后更新于 2026-06-05,距今已过 56 天
部分内容可能已过时
相关文章 智能推荐
1
CISP 笔记二:网络安全监管
技术教程 详细介绍网络安全法律体系建设、国家网络安全政策、网络安全道德准则、信息安全标准和等级保护制度,基于 CISP 认证考试内容整理。
2
CISP 笔记一:信息安全保障
技术教程 详细介绍信息安全保障的基础概念、框架和实践,基于 CISP 认证考试内容整理。
3
常用正则表达式速查表
技术教程 收集常用正则表达式,包括IP地址、域名、邮箱、手机号等,方便复制使用。
4
DNS查询利器:dig工具完全指南
技术教程 详细介绍 DNS 查询工具 dig 的使用方法、输出解读和网络诊断技巧。
5
macOS nettop 工具指南
技术教程 详细介绍 macOS 系统中 nettop 命令的使用方法、输出解读和网络诊断技巧。
随机文章 随机推荐