邮件送达率与 DNS

DMARC 设置:DNS 验证与策略实施

作者:Alexey Bulygin
DMARC DNS 记录与逐步验证、实施策略的流程

DMARC 设置是管理自有邮件域名的基本工作。它检查域名认证,并向接收方说明未通过检查的邮件应如何处理,有助于限制部分域名冒用,但不保证邮件送达。

无论只有一个邮箱,还是管理大量客户域名,这项工作都值得认真处理。整体架构可以先参考小企业商务邮箱,再完成 DNS 配置。

设置步骤并不复杂,难点在于协调 SPF、DKIM、转发和第三方发信服务。下面介绍初始记录、关键标签、何时收紧策略,以及容易影响正常业务邮件的错误。

DMARC 设置实际检查什么

_dmarc.yourdomain.com 发布 TXT 记录,可以向接收服务器说明 DMARC 未通过时的期望处理方式。检查要求 SPF 或 DKIM 至少有一项认证通过,而且该项认证的域名与可见 From 域名对齐。

DMARC 不替代 SPF 或 DKIM,而是利用它们的结果。根据 RFC 7489,其中任何一项同时满足认证通过和域名对齐,就可以通过 DMARC。只有认证成功或只有对齐都不够。

Google 的发件人指南也说明了认证与对齐要求。普通发件人和批量发件人的适用要求不同,应按实际发送规模和类型核对。

可以这样理解:DMARC 检查邮件是否通过与发件域名对齐的认证,并提出处理请求。它不证明发件人的个人身份,也不证明内容安全;接收方仍决定是否接收以及如何过滤。

先发布哪条 DNS 记录

如果还没有验证所有发信渠道,可以先用 p=none 观察。分析收到的报告,梳理正常发信系统,并测试关键邮件。过早采用 reject 可能影响密码重置、账单和联系表单。

以下是主机名 _dmarc 下的示例,其中严格对齐是可选设置,并非所有环境的默认首选:

v=DMARC1; p=none; rua=mailto:dmarc@example.com; adkim=s; aspf=s; pct=100

如果精确匹配不适合实际发信架构,可以将 adkim=saspf=s 改为宽松对齐。下一条记录是替代方案,不要与上一条一起发布:

v=DMARC1; p=none; rua=mailto:dmarc@example.com; adkim=r; aspf=r; pct=100

宽松对齐适合不少环境,但仍要求双方具有相同的组织域名。它可以涵盖符合条件的子域名,不代表任意父子域名关系都能对齐。

TrekMail 可提供域名记录检查。相关说明包括必需的 DNS 记录添加域名检查 DNS 状态。文档中的 p=quarantine 示例不意味着未经验证的生产域名应直接采用限制策略。先观察并测试,通常更容易发现业务影响。

需要关注的 DMARC 标签

初期应集中处理策略、报告地址和对齐方式。确认正常发信系统的实际结果后,再调整其他设置,避免把配置复杂度当作验证的替代品。

标签作用实际配置建议
v协议版本DMARC1
p域名策略先用 none,验证后考虑 quarantine,再按需要采用 reject
rua聚合报告收件地址使用可接收邮件且有人分析的地址
adkimDKIM 对齐方式rs
aspfSPF 对齐方式rs
pct请求按限制策略处理的 DMARC 失败邮件比例100,并核对接收方的实际行为
sp子域名继承的策略需要不同处理时再设置

尤其要理解 p 提出的处理请求,以及 rua 提供的反馈渠道。报告只来自参与报告的接收方,不能构成完整发信清单。外部报告地址可能需要目标域名的 DNS 授权,也应评估隐私和访问权限。

pct 可按 RFC 7489 用于逐步实施策略,但不同接收方不一定按完全相同的方式抽样。设为 100 是请求覆盖全部适用的失败邮件;策略为 none 时,这仍然不是限制性处理。

逐步完成 DMARC 设置

先验证 SPF 和 DKIM,再发布观察策略,分析报告并进行实际邮件测试。收紧策略应以业务流程的验证结果为依据,而不只是记录已经存在。

  1. 列出所有使用你的 From 域名发信的系统,包括邮箱主机、CRM、账单工具、客服、表单和营销平台。
  2. 检查实际信封发件域名的 SPF。按服务商说明,只授权真实使用的发信系统,并维护一条适用的 SPF 记录;注意需要 DNS 查询的机制和修饰符的计算限制,包括嵌套求值。
  3. 为支持 DKIM 的发信系统启用签名并验证域名对齐。转发后要继续通过验证,签名覆盖的数据必须得到保留。
  4. 发布使用 p=none 的初始策略。
  5. 可以先观察 2 至 4 周,同时单独测试低频、月度和季度的关键业务邮件。
  6. 确认正常邮件持续通过对齐认证后,再考虑 p=quarantine
  7. 验证关键发信来源并排查剩余失败后,再考虑 p=reject

以下命令可辅助检查 DNS:

dig TXT _dmarc.example.com +short

dig TXT example.com +short

dig TXT dkim._domainkey.example.com +short

下面只演示记录结构。SPF 中的 include 必须对应实际授权的发信方;DKIM 选择器和完整公钥应取自真正签名的系统。省略后的示例公钥不能用于实际配置:

; SPF
example.com.  IN TXT  "v=spf1 include:spf.trekmail.net include:_spf.google.com -all"

; DKIM
dkim._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkq..."

; DMARC
_dmarc.example.com. IN TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com; adkim=r; aspf=r; pct=100"

从头搭建邮箱时,可以参考创建自有域名邮箱。更换主机时,TrekMail 的 IMAP 迁移概述介绍已有邮件的导入。IMAP 复制邮件,DMARC 检查出站邮件的域名认证;两者都不能替代 MX 和发信系统的切换计划。

DMARC 何时通过或失败

SPF 或 DKIM 至少有一项同时满足认证通过和 From 域名对齐,DMARC 才能通过。如果没有这样的认证结果,即使其他域名的认证成功,DMARC 仍可能失败。

关键情况如下:

SPFDKIM通过认证的机制是否对齐?DMARC 结果
PassFailPass
FailPassPass
PassPassFail
FailFailFail

转发是典型例子。转发服务器可能不在原信封域名的 SPF 授权中,导致 SPF 失败。只要签名覆盖的内容在规范化规则下保持有效,DKIM 就可能继续通过,因此验证过的对齐签名很重要。

你从 billing@example.com 发出邮件,客户将其转发到 Gmail。SPF 可能失败,但如果 d=example.com 的 DKIM 签名仍验证成功并与 From 对齐,DMARC 依然可以通过。

分析 SPF 失败时应结合上下文。转发后的有效对齐 DKIM 可以提供 DMARC 的通过依据,但不能因此不加检查地忽略所有 SPF 失败。

如果业务依赖转发,也可阅读邮件转发设置。SRS 可以帮助新的信封地址通过 SPF,ARC 可以传递此前的认证结果,但两者都不保证与原始 From 对齐,也不保证特定的投递结果。

从 none 逐步转向 quarantine 和 reject

逐步实施可以在提出更严格的处理请求前发现问题。每一步都可能暴露正常邮件的配置缺陷,最终处理仍由接收方决定。

各策略的含义:

  1. p=none:不请求 DMARC 限制处理,但本地过滤仍可能生效。
  2. p=quarantine:请求将失败邮件按可疑邮件处理,例如放入垃圾邮件区域。
  3. p=reject:请求拒收失败邮件,通常可在 SMTP 阶段处理。

以下记录分别用于不同阶段,只能选择当前适用的一条,不要同时发布:

; Phase 1
v=DMARC1; p=none; rua=mailto:dmarc@example.com; adkim=r; aspf=r; pct=100

; Phase 2
v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com; adkim=r; aspf=r; pct=100

; Phase 3
v=DMARC1; p=reject; rua=mailto:dmarc@example.com; adkim=r; aspf=r; pct=100

如果子域名需要不同策略,可以设置 sp=。RFC 7489 规定了从组织域名继承策略的规则:子域名没有适用的自身记录时,使用继承策略;未设置 sp 时,使用主策略。分开管理子域名发信时,应核对这一关系。

常见的 DMARC 设置错误

许多问题实际来自 SPF 授权遗漏、DKIM 签名失效、错误的 DNS 名称,或第三方服务的 From 未对齐。应修复真正的原因,而不是只改 DMARC 策略。

错误可能影响修复方法
未验证 DKIM 就请求限制处理转发邮件没有其他通过且对齐的机制时可能失败在限制前启用并测试 DKIM
发布多条 SPF 记录SPF 返回 PermError维护一条经过核对的 SPF 记录
DMARC 主机名错误接收方找不到所需记录发布在 _dmarc 下,而不是域名根部
过早采用 reject正常邮件可能被拒收先用 p=none 观察并测试
忽略域名对齐认证通过,DMARC 仍可能失败让通过认证的机制与 From 对齐
没有报告接收地址缺少这一反馈渠道添加可接收报告的 rua 地址并分析数据

别名邮件可能由第三方使用其自身域名签名。若 SPF 也没有提供通过且对齐的结果,即使 DKIM 通过,DMARC 仍可能失败。选择别名或独立邮箱时,可以参考域名邮箱别名与独立邮箱的区别

TrekMail 的 DNS 检查可以帮助发现预期记录的冲突。出现警告时,先检查 DNS 状态,再测试实际邮件;界面显示正常并不等于所有发信渠道的认证都已验证。

TrekMail 与集中式邮件管理

多个主机、复杂转发规则和三家 SMTP 服务商,会增加协调工作。TrekMail 可以将域名、邮箱、DNS 检查、转发和迁移集中到同一管理界面。

分散管理的示例TrekMail 可提供的方式
不同域名工具分别按用户计费固定费用的多域名托管,仍受套餐资源限制
邮箱存储分散管理按套餐共享存储;其他服务商也可能提供共享模式
手动核对 DNS内置 DNS 检查和配置向导
迁移需要复杂协调服务器端 IMAP 导入,作为切换计划的一部分
未经验证的转发增加排障难度考虑邮件认证要求的转发工具

个人管理员和代理机构都可能从统一流程中受益。管理五十个客户域名时,一致的操作尤其重要,但这不代表可以保证某个节省金额。

Starter 的价格参考为每月 $3.50 起。Nano 提供免费、无需银行卡的选项,支持最多 10 个域名并使用自备 SMTP。适用的付费套餐包含托管 SMTP;提供的 14 天试用需要信用卡。价格、功能、限制和当前条件请查看 TrekMail 价格

DMARC 设置最终检查清单

完整设置不只是发布 TXT,还要验证通过且对齐的 SPF 或 DKIM,分析可用反馈,并有控制地推进限制策略。这有助于减少域名冒用,却不证明内容安全,也不保证所有邮件送达。

  1. 列出并确认已知的域名发信系统。
  2. 只维护一条经过核对的 SPF 记录。
  3. 在支持的系统上启用并验证 DKIM。
  4. 发布观察策略。
  5. 例如分析 2 至 4 周的报告,并单独测试低频关键邮件。
  6. 验证后考虑 quarantine。
  7. 排查剩余问题后再考虑 reject。

真正重要的是可核查的测试和持续维护,而不只是 DNS 中存在记录。

TrekMail 可按套餐提供固定费用的多域名托管、共享存储、IMAP 迁移和 DNS 验证。在 trekmail.net 查看入门和免费选项,需要托管发信时可比较套餐价格

目标是更有序地管理发件域名,同时减少对正常邮件的影响。域名认证、实际测试和接收方规则都需要持续关注。

分享这篇文章

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

登录 TrekMail

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

12 个字符 两次密码一致

重置邮件已发送

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

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