邮件送达率与 DNS

如何设置 DMARC:验证发信源与域名对齐

作者:Alexey Bulygin
DMARC 设置中的发信源验证与策略推进步骤

如果你想了解如何设置 DMARC,不要直接采用 p=reject。先观察,再验证每个真实发信系统的 SPF 或 DKIM 是否同时通过认证并与 From 对齐,最后分阶段收紧策略。这有助于限制域名冒用,同时减少账单、密码重置和被遗漏的 SaaS 邮件受到影响的风险。

现实中的邮件架构往往很复杂:邮箱使用 Microsoft 365,账单来自第三方应用,营销采用另一平台,仓库复印机还在发送扫描件。漏掉一个发信源,就可能让限制策略影响业务。搭建域名邮箱时,也可参考设置自有域名邮箱和更全面的商务邮箱指南

下面按实际运维顺序展开:观察、收集可核查的结果、修复对齐,再请求限制处理。发布记录并不意味着这些验证工作已经完成。

DMARC 实际做什么

DMARC 通过 DNS 向接收服务器说明:声称来自你的域名、却未通过对齐认证的邮件,应如何处理。它基于 SPF 和 DKIM。至少有一项认证通过,而且该项认证域名与可见 From 域名对齐,DMARC 才能通过。

DMARC 的全称是 Domain-based Message Authentication, Reporting, and Conformance。它允许域名所有者发布认证失败时的处理策略,并请求报告。基础规范是 RFC 7489。认证成功并不证明内容安全,也不保证邮件送达。

设置时应理解以下关系:

  • SPF 可以通过但不与 From 对齐。只有同时缺少通过且对齐的 DKIM 时,DMARC 才会因此失败。
  • DKIM 通过却未对齐也不够;不过,通过且对齐的 SPF 仍可以让 DMARC 通过。
  • SPF 或 DKIM 中任何一项同时满足认证通过和域名对齐,DMARC 就可以通过。

Google 所说明的批量发件人要求包括 SPF、DKIM,以及至少采用 p=none 的 DMARC 记录。适用发件人还需通过 SPF 或 DKIM 满足 From 对齐要求。请在 Google 发件人指南常见问题中核对当前适用条件。

设置 DMARC 前的准备

先检查发信架构。SPF 配置错误、缺少 DKIM,或使用不匹配的签名域名,都可能在请求限制后影响正常邮件。观察策略本身不会制造这些认证错误,但可以帮助发现问题。

首先检查三个方面。

  1. SPF:为实际信封发件域名维护一条适用记录。10 的限制计算的是需要 DNS 查询的机制和修饰符,包括嵌套求值,不是所有 DNS 查询的总数。
  2. DKIM:在支持的发信系统上启用并验证。如果服务商支持适当配置,可使用 2048 位密钥。
  3. 发信清单:列出所有使用你的 From 域名的系统,包括邮箱、CRM、账单、客服、表单、扫描仪和营销工具。

TrekMail 域名的基础说明见必需的 DNS 记录添加域名。DNS 检查可以帮助识别缺失或重复记录,但真实邮件的认证仍需单独测试。

账单应用使用 billing@yourdomain.com 发信,却采用服务商的签名域名和 Return-Path。SPF、DKIM 可以对服务商通过,但没有与你的 From 对齐。若没有其他通过且对齐的认证结果,DMARC 就会失败。

这类对齐问题,是部分邮件在实施限制后出现故障的原因。

步骤 1:发布仅用于观察的 DMARC 记录

发信路径尚未充分验证时,可以先观察。p=none 不请求接收方按 DMARC 隔离或拒收邮件。收到的报告有助于分析,但报告并不保证提供,接收方本地过滤仍可能生效。

_dmarc.yourdomain.com 创建 TXT,值如下:

v=DMARC1; p=none; rua=mailto:dmarc-reports@yourdomain.com

下面是同一记录的区域文件写法,不是额外发布的一条记录:

_dmarc  IN TXT  "v=DMARC1; p=none; rua=mailto:dmarc-reports@yourdomain.com"

这采用了 RFC 7489 示例的基本形式。报告应发往专门管理的邮箱或别名,而非个人收件箱。聚合报告使用 XML,可能迅速积累。应检查访问权限;外部报告地址还可能需要目标域名的 DNS 授权。

在实际管理 DNS 的服务处发布记录,再验证其他认证配置。TrekMail 的邮件进入垃圾邮件的常见问题也有助于分析转发带来的正常变化,以及需要进一步测试的故障。

步骤 2:分析报告并确认真实发信来源

不要跳过报告分析。报告能提示发信来源和配置问题,但不覆盖所有邮件,也不能单独可靠地判断正常邮件与滥用。

报告中可能包含:

  • 报告接收方观察到的发信源 IP
  • SPF 认证结果
  • DKIM 认证结果
  • 与 From 域名对齐的检查结果
  • 接收方报告的处理方式

排查时可以先分成两类。

已知正常系统的对齐失败需要修复。未知来源则需要先核实:它可能是冒用,也可能是转发服务器或共享发信服务。认证通过并不证明邮件内容安全。

下表是可能出现的示例,不代表服务商的固定默认行为:

发信来源SPFDKIM对齐如何理解
正确配置的 Microsoft 365 或 TrekMail 邮箱PassPassPass符合预期;更改配置后仍需重新验证。
尚未完成匹配域名配置的 Mailchimp 或 SendGridPassPassFail认证通过,但没有与你的 From 域名对齐。
保留有效对齐 DKIM 签名的转发邮件FailPassPass via DKIM可能是正常的转发结果。
使用负责人地址、可能存在冒用的未知来源FailFailFail需要核实;后续策略可请求限制处理。

管理很多域名时,每个新增 SaaS 工具都会增加发信配置工作。统一流程有助于管理,多域名邮箱托管介绍了相关方案,但不保证特定的工单减少幅度。

步骤 3:修复对齐,而不只是认证

需要的是至少一项通过且对齐的 SPF 或 DKIM,而不是单纯认证通过。在宽松模式下,认证域名必须与可见 From 具有相同的组织域名;严格模式则要求精确匹配。

RFC 7489 使用 RFC5322.From 域名定义宽松对齐。Google 的发件人常见问题说明,DMARC 只需要 SPF 或 DKIM 中有一项通过且对齐;两种认证机制的配置应同时符合适用的发件要求。

常见修复包括:

  • 营销平台:启用并验证使用自有域名的 DKIM 签名。
  • 退信处理:在服务商支持时,配置自有 Return-Path 或品牌退信域名。
  • Microsoft 365:在请求限制前,为自有域名启用并测试 DKIM。
  • TrekMail 托管发信:准确发布实际发信渠道所显示的 SPF 和 DKIM 记录。

集中管理不代表可以省略 DNS 验证。TrekMail 可提供配置记录,并按套餐提供托管 SMTP 或 Nano 的自备 SMTP。邮箱和出站发信服务仍应分别核对。

Nano 使用你自己的 SMTP 服务商,适用的付费套餐则包含托管 SMTP。TrekMail 的价格参考为每月 $3.50 起,并提供付费套餐的 14 天试用。Nano 有无需银行卡的免费选项。当前功能和条件请查看 TrekMail 价格

步骤 4:考虑以 quarantine 作为中间阶段

完成观察和测试后,可以考虑 quarantine。它已经是限制请求,要求接收方将失败邮件作为可疑邮件处理。不保证放入某个垃圾邮件文件夹,也不保证可以恢复。低频正常发信尤其需要验证。

确认适合推进后,用以下记录替换原有策略:

v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@yourdomain.com

为什么可以先考虑 quarantine,再考虑 reject?

  • 它请求限制未通过域名认证的邮件。
  • 某些接收方的处理可能没有直接拒收那么彻底。
  • 可以继续观察实际结果,但正常邮件仍面临风险。

停留时间取决于发信周期。几周可以作为规划参考,30 天也只是示例。少见的关键邮件,包括季度邮件,需要专门测试或更长观察。

这时常会发现未记录的 WordPress 插件、CRM 测试环境、旧复印机或每月才发信的供应商。Quarantine 不替代这些系统的验证,也不保证无损缓冲。

步骤 5:验证结果后考虑 reject

p=reject 请求接收方拒收失败邮件,而不只是标为可疑。这有助于限制直接冒用域名,但接收方的本地策略会影响最终决定。

下面的记录替换之前的策略,不要作为附加记录发布:

v=DMARC1; p=reject; rua=mailto:dmarc-reports@yourdomain.com

RFC 7489 说明了 p=reject 对 DMARC 失败邮件提出的拒收请求。接收方可以采用本地例外;它不能阻止所有欺骗,也不证明内容安全。

推进前至少确认:

  • 主要邮箱服务的发信认证通过且与 From 对齐
  • 营销和事务邮件的认证通过且与 From 对齐
  • 分析了数周可用报告,并测试低频关键流程
  • 理解剩余失败的原因

推进后仍应分析报告和测试真实邮件。新增服务和发信配置变更,都应经过相同的验证流程。

容易影响邮件的常见错误

遗漏的发信源、重复 SPF、缺少 DKIM 和未调整的服务商认证域名,都可能在严格策略下引发问题。应排查实际发信配置,而不只是更改 DMARC 请求。

  • 尚未启用并测试 DKIM 就请求限制处理
  • 发布多条 SPF,而不是维护一条核对过的记录
  • 把 SPF pass 当作 DMARC pass
  • 遗漏低频发信供应商
  • 未经验证就直接采用 p=reject
  • 将报告发到无人管理的地址

转发可能让 SPF 失败,而仍然有效且对齐的 DKIM 签名可以让 DMARC 通过,前提是签名覆盖的数据在规范化规则下得到保留。更多运维背景见邮箱别名转发安全的商务邮箱

DMARC 设置简明清单

以下清单概括分阶段流程,应按真实发信来源和业务周期调整。

  1. 梳理所有使用你的 From 域名的系统。
  2. 为实际信封域名配置一条有效 SPF。
  3. 在支持的发信平台启用并验证 DKIM。
  4. 发布 v=DMARC1; p=none; rua=mailto:...
  5. 将报告与已知系统核对,并调查未知流量。
  6. 为每个正常发信源验证通过且对齐的认证。
  7. 测试后考虑 p=quarantine
  8. 再次分析报告并测试重要邮件。
  9. 确认结果后考虑 p=reject

总结:有控制地设置 DMARC

实用流程从 p=none 开始,将报告与发信清单核对,并修复 SPF 和 DKIM 对齐。测试后可考虑 p=quarantine,再考虑 p=reject。这减少配置错误风险,但不保证送达或完全阻止冒用。

管理大量域名时,统一工具更有帮助。TrekMail 可按套餐提供自有域名、IMAP 邮箱、catch-all、转发、迁移及自备或托管 SMTP。IMAP 迁移复制现有邮件,不替代完整的 MX、应用和发信切换。固定费用套餐仍有资源限制,DMARC 也仍需正确配置。

这就是设置 DMARC 的实际方法:先验证,再有依据地收紧策略,并持续将报告与真实邮件测试相互核对。

分享这篇文章

我们使用运行和保护 TrekMail 所必需的技术。确认后还会允许《Cookie 政策》中所述的有限分析和广告衡量。

登录 TrekMail

访问您的控制面板、邮箱和 DNS。

12 个字符 两次密码一致

重置邮件已发送

如果该邮箱对应已有账户,我们已发送密码重置说明。

继续即表示您同意 TrekMail 的 服务条款隐私政策.