# 如何设置 DMARC，从 p=none 到 p=reject？

> 在 _dmarc 发布一条带 p=none 和 rua 地址的 TXT 记录，阅读报告一个月，然后转为 quarantine 和 reject（RFC 9989）。

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

DMARC 是三种身份验证记录中的最后一个，也是唯一带有策略的。先从监控模式开始，然后逐步收紧。

**快速回答 — 如何为我的域名设置 DMARC？**

在 _dmarc.yourdomain 发布一条内容为 v=DMARC1; p=none; rua=mailto:you@yourdomain 的 TXT 记录，阅读汇总报告约一个月，然后将策略提高到 quarantine，最后是 reject。自 2026 年 5 月起，DMARC 由 RFC 9989 定义。**Postelva** 在其免费 DNS 编辑器中托管该记录。

## 三种 DMARC 策略及其作用

| 政策 | 记录 | 对未通过 DMARC 的邮件的影响 | 何时使用 |
| --- | --- | --- | --- |
| 监控 | v=DMARC1; p=none; rua=mailto:dmarc@example.com | 照常投递；报告会发送给您 | 最初几周，用于查看所有发件方 |
| 隔离 | v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com | 被视为可疑，通常送入垃圾邮件 | 在您所有合法邮件的 SPF 和 DKIM 都通过之后 |
| 拒绝 | v=DMARC1; p=reject; rua=mailto:dmarc@example.com | 被接收服务器拒收 | 当报告显示不再有合法邮件失败时 |

## 分六步设置 DMARC

1. **先确认 SPF 和 DKIM** — DMARC 要求其中至少一个通过，并且与您的 From 域名一致。请在 DMARC 之前，按照 SPF 和 DKIM 指南把两者都发布出来。
2. **选择接收报告的邮箱** — 创建一个类似 dmarc@yourdomain 的地址。RFC 9989 规定，所有者必须设置一个邮箱来接收和分析汇总报告。
3. **发布监控记录** — 添加一条 TXT 记录，主机为 _dmarc，值为 v=DMARC1; p=none; rua=mailto:dmarc@yourdomain。
4. **阅读报告约一个月** — 报告大约每天由发送报告的接收方发来一次。查找 SPF 和 DKIM 对齐失败的合法邮件，并修复这些发件方。
5. **转为 quarantine** — 将 p=none 改为 p=quarantine。保持相近的时长，并在报告中比较邮件的处理方式。
6. **转为 reject，或停留在 quarantine** — 报告干净时改为 p=reject。如果您从这个域名向邮件列表发帖，请停留在 quarantine。

*分三个阶段的记录*

```dns
; stage 1: monitor
_dmarc.example.com.  IN  TXT  "v=DMARC1; p=none; rua=mailto:dmarc@example.com"

; stage 2: quarantine
_dmarc.example.com.  IN  TXT  "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"

; stage 3: reject
_dmarc.example.com.  IN  TXT  "v=DMARC1; p=reject; rua=mailto:dmarc@example.com"
```

## DMARC 记录包含什么？

**DMARC 记录是位于 _dmarc.yourdomain 的 TXT 记录，以 v=DMARC1 开头，并列出以分号分隔的标签。**版本标签排在第一位，且区分大小写。RFC 9989 定义了这些标签：p（域名的策略）、sp（现有子域名的策略）、np（不存在子域名的策略）、adkim 和 aspf（对齐方式，r 为宽松，s 为严格，默认宽松）、rua（汇总报告地址）、ruf（失败报告地址）、fo（失败选项）、t（测试模式，y 或 n）和 psd。

如果缺少 p，接收方会将策略视为 none。如果缺少 sp，则 p 策略涵盖子域名。如果缺少 rua，就不会生成汇总报告。因此，一条最简而有用的记录有三个部分：版本、策略和报告地址。

许多较早的指南仍在展示的 pct 标签，已被 RFC 9989 移除，因为除了 0 和 100 之外，它很少被准确应用。t 标签取代了它：t=y 的行为类似 pct=0，t=n 类似 pct=100，默认为 n。请从旧记录中去掉 pct。更广泛的背景见 [SPF、DKIM 与 DMARC 的比较](https://postelva.com/zh/spf-vs-dkim-vs-dmarc/ "SPF vs DKIM vs DMARC: what is the difference?")。

## DMARC 中的对齐是什么意思？

**对齐是指经 SPF 或 DKIM 验证的域名与可见 From 地址中的域名相匹配。**在默认的宽松模式下，两者只需具有相同的组织域名，因此 mail.example.com 与 example.com 对齐。在严格模式下，两者必须完全相同。RFC 9989 指出，几乎所有域名所有者都认为宽松对齐已经足够。

当 SPF 或 DKIM 通过并且已对齐时，邮件通过 DMARC。其中一个就够了。Proton Mail 或 Fastmail 这样的邮箱服务商通过 DKIM CNAME 记录用您自己的域名签名，所以对齐无需额外工作即可成立。陷阱在于用自己的域名签名的第三方服务：它的 DKIM 会通过，但在您为其设置自定义签名域名之前不会对齐。

RFC 9989 通过 DNS 树遍历（最多八次查询）而不是公共后缀列表来确定组织域名。对于 .com 或 .me 上的普通域名，这不会改变您必须做的任何事情。

## 我应该在 p=none 停留多久？

**在 p=reject 之前，先在 p=none 至少停留一个月，再在 p=quarantine 停留相近的时间。**这是 RFC 9989 在其部署指南中建议的顺序，也与各服务商的帮助页面相符。Mailbox.org 的示例记录从 p=none 开始，并警告过早设置严格的策略可能会退回合法邮件。Proton 推荐 p=quarantine，并在合法邮件都通过后转为 p=reject。

根据 Postelva 在 2026 年 11 月 12 日对发布 DMARC 指南的 3 家服务商（Proton Mail、Mailbox.org 和 Mailfence）的解读，其中 2 家从 p=none 开始，1 家推荐 p=quarantine。

对 p=reject 有两点需要注意。RFC 9989 指出，使用它的域名不得仅依赖 SPF，必须用 DKIM 签名，因为 SPF 在转发时会失效。它还指出，用户会向邮件列表发帖的域名根本不应发布 p=reject。邮件列表经常修改邮件，这会破坏签名。

## DMARC 报告发到哪里，显示什么？

**汇总报告发送到 rua 中的 mailto: 地址，通常每个接收方每天一次，并列出在 From 行使用您域名发送邮件的来源。**RFC 9989 要求接收方支持 mailto: 地址，并建议至少每 24 小时发送一次汇总报告。汇总报告由 RFC 9990 定义。

用 ruf 请求的失败报告是针对每封邮件的副本。许多接收方出于隐私考虑会扣留或隐去它们，所以不要指望它们。如果 rua 地址位于您的域名之外，那个域名的所有者必须在 yourdomain._report._dmarc.otherdomain 处用包含 v=DMARC1; 的 TXT 记录授权，这条规则可防止第三方邮箱被滥用。对于小型个人域名，来源列表很短：您的服务商，几乎没有其他。

要读取每个阶段前后您的 DNS 发布了什么，请使用[检查 MX、SPF、DKIM 和 DMARC 记录的命令](https://postelva.com/zh/guides/check-email-dns-records/ "How to check MX, SPF, DKIM and DMARC records")。

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

**需要，任何发送邮件的域名都需要：它只需一条 TXT 记录，就能拦截冒用您名义的伪造邮件。**Google 要求向 Gmail 账户每天发送超过 5,000 封邮件的发件人使用 DMARC，策略为 none 即可，Microsoft 对 Outlook.com 采用相同的门槛。个人邮箱远低于这些限制。记录仍然告诉接收方，您希望如何处理伪造邮件。

对于不发送任何邮件的域名，请立即设置 p=reject，配合 SPF -all 和 null MX。Postelva 为这种情况提供“无邮件”模板。对于有邮箱的域名，请从 none 开始。同一保护的传输侧，即服务器之间的加密，见[如何设置 MTA-STS 和 TLS-RPT](https://postelva.com/zh/guides/mta-sts-setup/ "How to set up MTA-STS and TLS-RPT")。

一条可引用的定义：DMARC 是一种 DNS 策略，告诉接收方如何处理 SPF 和 DKIM 结果与 From 域名不对齐的邮件，以及把相关报告发送到哪里。

## DMARC 设置常见问题

### RFC 9989 要求 p=reject 吗？

不要求。该标准定义了三种策略，选择权留给域名所有者。它建议循序渐进，并警告用户会向邮件列表发帖的域名不要使用 p=reject。

### RFC 9989 会改变我现有的 DMARC 记录吗？

记录仍以 v=DMARC1 开头，因此可用的记录继续可用。ri 标签已被舍弃，pct 已被移除，并新增了 t、np 和 psd。

### 如果过早发布 p=reject 会怎样？

对齐失败的合法邮件，例如被遗忘的新闻通讯工具发出的邮件，会被接收方拒收。p=none 阶段的报告正是用来先找出这些发件方。

### 我可以用免费邮箱接收报告吗？

可以，任何您会阅读的邮箱都行。单独的地址或别名可以让每日的报告文件远离您的主收件箱。

### 一个域名可以有多少条 DMARC 记录？

每个名称一条，位于 _dmarc.yourdomain。子域名可以有自己的记录，也可以通过 sp 继承父域名的策略。

**总结**

- DMARC 是位于 _dmarc.yourdomain、以 v=DMARC1 开头的 TXT 记录。
- RFC 9989（2026 年 5 月）是现行规范；它取代了 RFC 7489，并移除了 pct。
- 从带 rua 地址的 p=none 开始，阅读报告约一个月。
- 然后 p=quarantine 相近的时长，再 p=reject。
- 当 SPF 或 DKIM 通过并与 From 域名对齐时，邮件通过；默认为宽松对齐。
- 使用 p=reject 的域名不得仅依赖 SPF，也不应与邮件列表一起使用。
- Postelva 在免费 DNS 中托管该记录；.com 每年 US$12.49/年。

## 来源

1. [RFC 9989，基于域名的邮件认证、报告与一致性（DMARC）](https://www.rfc-editor.org/rfc/rfc9989.html) — RFC Editor (查询日期 2026-11-12)
2. [RFC 7489，DMARC（已被取代）](https://www.rfc-editor.org/info/rfc7489) — RFC Editor (查询日期 2026-11-12)
3. [自定义域名的 SPF、DKIM 和 DMARC](https://kb.mailbox.org/en/private/custom-domains/spf-dkim-and-dmarc/) — Mailbox.org (查询日期 2026-11-12)
4. [自定义域名与防伪造](https://proton.me/support/anti-spoofing-custom-domain) — Proton (查询日期 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)

---

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