邮件协议详解: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
角色全称说明
MUAMail User Agent邮件用户代理(Outlook、Thunderbird 等客户端)
MTAMail Transfer Agent邮件传输代理(Postfix、Sendmail 等)
MDAMail Delivery Agent邮件投递代理(将邮件存入用户邮箱)

常用命令#

命令格式说明
HELO / EHLOEHLO example.com向服务器标识自己,EHLO 启用 ESMTP 扩展
AUTH LOGINAUTH LOGIN客户端认证
MAIL FROMMAIL FROM:<user@example.com>指定发件人
RCPT TORCPT TO:<user@example.com>指定收件人
DATADATA开始传输邮件正文,以 . 单独一行结束
QUITQUIT断开连接
RSETRSET重置会话,清除发件人和收件人

手动发送邮件示例#

Terminal window
# 连接 SMTP 服务器
telnet smtp.example.com 25
# 会话示例
EHLO myhost.example.com
MAIL FROM:<sender@example.com>
RCPT TO:<recipient@example.com>
DATA
From: sender@example.com
To: recipient@example.com
Subject: Test Email
This is a test email body.
.
QUIT

SMTP 响应码#

响应码含义
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 登录
事务状态客户端管理邮件(读取、删除、统计)
更新状态会话结束时,服务器执行删除等操作

常用命令#

命令格式说明
USERUSER username提供用户名
PASSPASS password提供密码
STATSTAT获取邮件总数和总大小
LISTLIST [msg]列出邮件编号和大小
RETRRETR 1获取指定编号的邮件内容
DELEDELE 1标记指定邮件为删除
RSETRSET撤销所有 DELE 标记
TOPTOP 1 10获取邮件前 N 行内容
UIDLUIDL [msg]获取邮件的唯一标识符
QUITQUIT提交并关闭连接

手动收取邮件示例#

Terminal window
telnet pop.example.com 110
# 会话示例
USER myusername
PASS mypassword
STAT
LIST
RETR 1
DELE 1
QUIT

POP3 特点#

  • 优点:简单,离线可读,节省服务器空间
  • 缺点:仅支持单设备访问,默认删除服务器副本

IMAP:互联网消息访问协议#

IMAP(Internet Message Access Protocol)允许客户端直接管理服务器上的邮件,支持多设备同步。

基本参数#

  • 默认端口:143(明文)、993(SSL/TLS)
  • 传输层:TCP
  • 特点:邮件存储在服务器,支持文件夹/标签管理

常用命令#

命令格式说明
LOGINLOGIN user pass用户登录
SELECTSELECT INBOX选择邮箱文件夹
FETCHFETCH 1 BODY[]获取邮件内容
SEARCHSEARCH UNSEEN搜索邮件
STORESTORE 1 +FLAGS (\Seen)修改邮件标记
CREATECREATE folder创建文件夹
LISTLIST "" "*"列出所有文件夹
EXAMINEEXAMINE INBOX只读选择文件夹
LOGOUTLOGOUT断开连接

IMAP 标记#

标记含义
\Seen已读
\Answered已回复
\Flagged已标记/星标
\Deleted已删除
\Draft草稿

POP3 vs IMAP#

对比项POP3IMAP
邮件存储位置下载到本地保留在服务器
多设备同步不支持支持
离线访问支持需提前缓存
服务器空间较少占用持续占用
文件夹管理不支持支持
部分下载TOP 命令有限支持原生支持
适用场景单设备、离线阅读多设备、团队协作

MIME:多用途互联网邮件扩展#

MIME(Multipurpose Internet Mail Extensions)扩展了 SMTP 的能力,使其支持非 ASCII 文本和附件。

关键头部#

头部值示例说明
MIME-Version1.0MIME 版本
Content-Typetext/plain; charset=utf-8内容类型和编码
Content-Transfer-Encodingbase64传输编码方式
Content-Dispositionattachment; filename="file.pdf"附件文件名

常见 Content-Type#

类型说明
text/plain纯文本
text/htmlHTML 邮件
multipart/alternative同时包含纯文本和 HTML
multipart/mixed包含附件
application/pdfPDF 附件
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 记录

Terminal window
dig +short example.com TXT

DKIM:域密钥识别邮件#

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 公钥

Terminal window
dig +short selector1._domainkey.example.com TXT

DMARC:基于域的消息认证、报告和一致性#

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 记录

Terminal window
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>反向解析(防垃圾邮件)

总结#

协议端口用途场景
SMTP25 / 587发送邮件邮件传输
SMTP(S)465加密发送邮件传输 + SSL/TLS
POP3110 / 995下载邮件到本地单设备阅读
IMAP143 / 993管理服务器邮件多设备同步
SPFDNS TXT验证发件服务器防伪造
DKIMDNS TXT验证邮件完整性防篡改
DMARCDNS TXT定义认证策略防欺诈

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

邮件协议详解:SMTP、POP3、IMAP 与安全机制
https://blog.cllll.link/posts/email-protocols-guide/
作者
clll
发布于
2026-06-05
许可协议
CC BY-NC-SA 4.0
最后更新于 2026-06-05,距今已过 56 天

部分内容可能已过时

Profile Image of the Author
clll
Hello, I'm clll.
公告
Hello, World!
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
19
分类
3
标签
57
总字数
29,930
运行时长
0
最后活动
0 天前

目录