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=s 和 aspf=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 | 聚合报告收件地址 | 使用可接收邮件且有人分析的地址 |
adkim | DKIM 对齐方式 | r 或 s |
aspf | SPF 对齐方式 | r 或 s |
pct | 请求按限制策略处理的 DMARC 失败邮件比例 | 100,并核对接收方的实际行为 |
sp | 子域名继承的策略 | 需要不同处理时再设置 |
尤其要理解 p 提出的处理请求,以及 rua 提供的反馈渠道。报告只来自参与报告的接收方,不能构成完整发信清单。外部报告地址可能需要目标域名的 DNS 授权,也应评估隐私和访问权限。
pct 可按 RFC 7489 用于逐步实施策略,但不同接收方不一定按完全相同的方式抽样。设为 100 是请求覆盖全部适用的失败邮件;策略为 none 时,这仍然不是限制性处理。
逐步完成 DMARC 设置
先验证 SPF 和 DKIM,再发布观察策略,分析报告并进行实际邮件测试。收紧策略应以业务流程的验证结果为依据,而不只是记录已经存在。
- 列出所有使用你的 From 域名发信的系统,包括邮箱主机、CRM、账单工具、客服、表单和营销平台。
- 检查实际信封发件域名的 SPF。按服务商说明,只授权真实使用的发信系统,并维护一条适用的 SPF 记录;注意需要 DNS 查询的机制和修饰符的计算限制,包括嵌套求值。
- 为支持 DKIM 的发信系统启用签名并验证域名对齐。转发后要继续通过验证,签名覆盖的数据必须得到保留。
- 发布使用
p=none的初始策略。 - 可以先观察 2 至 4 周,同时单独测试低频、月度和季度的关键业务邮件。
- 确认正常邮件持续通过对齐认证后,再考虑
p=quarantine。 - 验证关键发信来源并排查剩余失败后,再考虑
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 仍可能失败。
关键情况如下:
| SPF | DKIM | 通过认证的机制是否对齐? | DMARC 结果 |
|---|---|---|---|
| Pass | Fail | 是 | Pass |
| Fail | Pass | 是 | Pass |
| Pass | Pass | 否 | Fail |
| Fail | Fail | 否 | Fail |
转发是典型例子。转发服务器可能不在原信封域名的 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
逐步实施可以在提出更严格的处理请求前发现问题。每一步都可能暴露正常邮件的配置缺陷,最终处理仍由接收方决定。
各策略的含义:
p=none:不请求 DMARC 限制处理,但本地过滤仍可能生效。p=quarantine:请求将失败邮件按可疑邮件处理,例如放入垃圾邮件区域。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,分析可用反馈,并有控制地推进限制策略。这有助于减少域名冒用,却不证明内容安全,也不保证所有邮件送达。
- 列出并确认已知的域名发信系统。
- 只维护一条经过核对的 SPF 记录。
- 在支持的系统上启用并验证 DKIM。
- 发布观察策略。
- 例如分析 2 至 4 周的报告,并单独测试低频关键邮件。
- 验证后考虑 quarantine。
- 排查剩余问题后再考虑 reject。
真正重要的是可核查的测试和持续维护,而不只是 DNS 中存在记录。
TrekMail 可按套餐提供固定费用的多域名托管、共享存储、IMAP 迁移和 DNS 验证。在 trekmail.net 查看入门和免费选项,需要托管发信时可比较套餐价格。
目标是更有序地管理发件域名,同时减少对正常邮件的影响。域名认证、实际测试和接收方规则都需要持续关注。