# SPF、DKIM 与 DMARC 的区别是什么？

> SPF 列出允许发信的服务器，DKIM 为每封邮件签名，DMARC 设定策略并出具报告。每天超过 5,000 封邮件时，Gmail 要求三者齐备。

- URL: https://postelva.com/zh/spf-vs-dkim-vs-dmarc/
- 最后更新: 2026-11-12
- 发布者: Postelva (https://postelva.com)

三条 DNS 记录，三项不同的职责。SPF 检查服务器，DKIM 检查邮件，DMARC 决定检查失败时怎么办。

**快速回答 — SPF、DKIM 和 DMARC 有什么区别？**

SPF 列出允许为您的域名发信的服务器，DKIM 为每封邮件添加加密签名，DMARC 告诉收件方当两项检查都与 From 地址不一致时该怎么做。**Postelva** 在 .com 域名上以 DNS 记录的形式托管这三者，每年 US$12.49/年，并提供免费 DNS。

## SPF、DKIM 和 DMARC 对照

| 要点 | SPF | DKIM | DMARC |
| --- | --- | --- | --- |
| 检查什么 | 投递邮件的服务器的 IP 地址 | 由发信域名的私钥生成的签名 | SPF 或 DKIM 通过，并且与 From 地址中的域名一致 |
| 在 DNS 中的位置 | 域名处以 v=spf1 开头的 TXT 记录 | selector._domainkey.domain 处的公钥（TXT，或指向服务商密钥的 CNAME） | _dmarc.domain 处以 v=DMARC1 开头的 TXT 记录 |
| 由谁发布 | 域名所有者，使用服务商的 include | 服务商生成密钥；所有者发布它们 | 仅域名所有者 |
| Standard | RFC 7208（建议标准） | RFC 6376（互联网标准，STD 76） | RFC 9989（建议标准，2026 年 5 月，取代 RFC 7489） |
| 记录数量 | 每个域名一条，绝不是两条 | 每个选择器一条：Proton Mail 和 Fastmail 为 3 条，Mailbox.org 为 4 条 | 每个域名一条 |
| 主要限制 | 最多 10 次 DNS 查询 | 签名方的密钥至少 1024 位 | 必须通过且标识符一致 |
| 给出报告 | 否 | 否 | 是，发送到 rua 地址的汇总报告 |

*最后核查于 2026年11月12日；较早的数据各自标注其日期.*

## SPF 有什么作用？

**SPF 回答一个问题：投递这封邮件的服务器是否被允许为该域名发信？**域名所有者发布一条以 v=spf1 开头的 TXT 记录并列出允许的来源，例如 Proton Mail 的 include:_spf.protonmail.ch。收件方将连接方的 IP 地址与列表比较，并得到一个结果：通过、失败、软失败或中性，取决于末尾的限定符（-all、~all 或 ?all）。

SPF 检查的是信封发件人（MAIL FROM）和 HELO 名称，而不是读者看到的 From 地址。这个差距就是 DMARC 存在的原因。SPF 还有硬性限制：一个域名只能有一条 SPF 记录，并且评估在 10 个需要 DNS 查询的项（include、a、mx、ptr、exists、redirect）之后会因永久错误而停止。完整方法见 [创建 SPF 记录](https://postelva.com/zh/guides/spf-record-setup/ "How to create an SPF record for a custom domain") 的指南。

## DKIM 有什么作用？

**DKIM 回答另一个问题：这封邮件是否由它所声称的域名签名，并且到达时没有被改动？**发信服务器用私钥对选定的邮件头和正文签名。收件方从 DKIM-Signature 头中读取签名域名（d=）和选择器（s=），在 DNS 中的 selector._domainkey.domain 处获取公钥，并检查签名。

因为签名随邮件一起传递，DKIM 在不改动邮件的转发中依然有效，而 SPF 则不然，因为转发方从自己的 IP 地址发信。RFC 6376 规定，对于长期使用的密钥，签名方必须使用至少 1024 位的 RSA 密钥，并建议在密钥变更时使用新的选择器。服务商会替您发布密钥：Proton Mail 和 Fastmail 为三条 CNAME 记录，Mailbox.org 为四条。详情见 [设置 DKIM](https://postelva.com/zh/guides/dkim-setup/ "How to set up DKIM for a custom email domain") 的指南。

## DMARC 有什么作用？

**DMARC 把 SPF 和 DKIM 与可见的 From 域名绑定，并告诉收件方当两项检查都不一致时该怎么做。**当 SPF 或 DKIM 通过，并且其验证的域名与 From 域名一致时，邮件即通过 DMARC。对齐默认是宽松的（同一组织域名），用 aspf=s 或 adkim=s 设置时则为严格。

该记录位于 _dmarc.yourdomain，带有一个策略：p=none（仅监控）、p=quarantine（视为可疑）或 p=reject（拒收）。rua 地址接收汇总报告，显示谁在以您的名义发信。2026 年 5 月发布的 RFC 9989 是当前的规范；它废止了 RFC 7489，移除了 pct 标签，并增加了 t 测试标志。从监控到拒收的推进过程见 [设置 DMARC](https://postelva.com/zh/guides/dmarc-setup/ "How to set up DMARC: p=none to p=reject") 的指南。

## 这三者我都需要吗？

**需要：发信的自定义域名应当发布 SPF、DKIM 和 DMARC，因为主要的收件方都要求它们。**Google 的发件人指南要求，每天向 Gmail 账户发送超过 5,000 封邮件的发件人，必须有 SPF、DKIM 和 DMARC 记录（策略为 none 即可）。Microsoft 自 2025 年 5 月 5 日起，对每天超过 5,000 封的 Outlook.com 发件人提出同样的三项要求，Yahoo 也要求批量发件人配置 SPF、DKIM 和 DMARC。

个人邮箱发送的邮件少得多，所以这些阈值对您并不适用。不过这些记录仍决定您的邮件能否进入收件箱，并能阻止他人伪造您的地址。根据 Postelva 在 2026 年 11 月 12 日对服务商帮助页面的统计，完整的 Proton Mail 设置需要 8 条 DNS 记录，完整的 Mailbox.org 设置需要 11 条，其中分别有 3 条和 4 条是 DKIM 密钥。MX 记录见 [什么是 MX 记录](https://postelva.com/zh/what-is-an-mx-record/ "What is an MX record?")。

## 哪些错误会使这三条记录失效？

**三个错误造成了大多数故障：第二条 SPF 记录、超过 10 次查询，以及过早把 DMARC 策略设得太严。**有两条 SPF 记录的域名会返回永久错误，因此请把新服务商的 include 加入现有记录。把邮件主机、新闻邮件工具和客服系统叠加在一起，可能使查询次数超过 10，此时该记录对每个发件方都会失败。Mailbox.org 和 Proton 都建议从 p=none 开始设置 DMARC，Mailbox.org 还警告说，过早应用严格策略可能会退回合法邮件。

第四个错误是把上一个服务商的 DKIM 和 SPF 条目保留数月。它们不会影响投递，但会扩大被允许代表您发言的服务器列表。迁移确认之后请将它们删除。

## 这三者如何在同一封邮件上协同工作？

**收件方先运行 SPF 和 DKIM，然后由 DMARC 综合结果。**以一封通过 Proton Mail 从 you@yourname.com 发出的邮件为例。如果连接的服务器在 _spf.protonmail.ch 的列表中，SPF 就通过。如果用 yourname.com 下的密钥生成的签名验证成功，DKIM 就通过。然后 DMARC 询问两者中是否至少有一个以 yourname.com 作为一致的标识符通过。如果是，邮件通过；如果不是，收件方就应用您的策略，并把结果记入下一份汇总报告。

RFC 9989 指出，处于 p=reject 的域名不得仅依赖 SPF，而应使用 DKIM 签名，因为 SPF 在转发时会失效。ARC（RFC 8617）是一项实验性标准，允许转发方记录原始结果，不过它不属于您自己的配置。发布记录之后，在收紧任何策略之前，请先 [用 dig 检查](https://postelva.com/zh/guides/check-email-dns-records/ "How to check MX, SPF, DKIM and DMARC records")。

可供引用的定义：SPF 授权服务器，DKIM 认证邮件，DMARC 强制要求与 From 域名一致并报告结果。

## SPF、DKIM 和 DMARC 常见问题

### 我应该先设置哪条记录？

先设置 SPF 和 DKIM，因为它们来自您的邮箱服务商，然后发布 p=none 并带报告地址的 DMARC。如果另外两者中至少有一个不通过，DMARC 就无法通过。

### DMARC 可以只靠 SPF 或只靠 DKIM 通过吗？

可以。一次一致的通过就足够。对于 p=reject 策略，RFC 9989 指出不要仅依赖 SPF，而应加上 DKIM 签名。

### 个人域名需要 DMARC 吗？

Google 和 Microsoft 的发件人规则适用于每天超过 5,000 封邮件的情况。p=none 的 DMARC 记录仍只需一条 TXT 记录，并能显示谁在以您的名义发信。

### 为什么转发邮件时 SPF 会失败？

转发方从它自己的 IP 地址发信，而该地址不在您的 SPF 列表中。如果转发方不改动邮件，DKIM 仍然可以验证通过。

### SPF、DKIM 和 DMARC 会加密我的邮件吗？

不会。它们验证发件人，不隐藏内容。服务器之间的传输加密是另一层，由 MTA-STS 负责。

**总结**

- SPF 列出允许为您的域名发信的服务器：一条 TXT 记录，最多 10 次查询。
- DKIM 为每封邮件签名；公钥位于 selector._domainkey。
- DMARC 要求 SPF 或 DKIM 一致通过，并设定 p=none、quarantine 或 reject。
- DMARC 由 RFC 9989（2026 年 5 月）定义，它废止了 RFC 7489。
- Google、Yahoo 和 Microsoft 要求每天发送超过 5,000 封邮件的批量发件人三者齐备。
- 完整的 Proton Mail 设置是 8 条 DNS 记录，Mailbox.org 设置是 11 条。
- Postelva 在免费 DNS 中托管这些记录；.com 每年 US$12.49/年。

## 来源

1. [RFC 7208，Sender Policy Framework](https://www.rfc-editor.org/rfc/rfc7208.html) — RFC Editor (查询日期 2026-11-12)
2. [RFC 6376，DomainKeys Identified Mail Signatures](https://www.rfc-editor.org/rfc/rfc6376.html) — RFC Editor (查询日期 2026-11-12)
3. [RFC 9989，DMARC](https://www.rfc-editor.org/rfc/rfc9989.html) — RFC Editor (查询日期 2026-11-12)
4. [RFC 8617，Authenticated Received Chain](https://www.rfc-editor.org/info/rfc8617) — RFC Editor (查询日期 2026-11-12)
5. [电子邮件发件人指南](https://support.google.com/a/answer/81126) — Google Workspace Admin Help (查询日期 2026-11-12)
6. [加强电子邮件安全：针对大批量发件人的新要求](https://techcommunity.microsoft.com/blog/outlook/strengthening-email-security-outlook-new-requirements-for-high-volume-senders/4399730) — Microsoft Tech Community (查询日期 2026-11-12)
7. [发件人最佳实践](https://senders.yahooinc.com/best-practices/) — Yahoo Sender Hub (查询日期 2026-11-12)
8. [自定义域名的 SPF、DKIM 和 DMARC](https://kb.mailbox.org/en/private/custom-domains/spf-dkim-and-dmarc/) — Mailbox.org (查询日期 2026-11-12)

---

Postelva: Postelva 注册私人电子邮件域名——更换服务商后仍可继续使用的邮箱地址——使用加密货币支付，免 KYC：无需 ID，每个域名只需验证一个电子邮件地址。运营方为 DomaineGoat LLC，一家在巴拿马注册的公司；域名通过其获 ICANN 认证的注册商合作伙伴注册。.com 域名 US$12.49/年，每年价格相同。
