邮件送达率与 DNS

DMARC 策略:none 到 reject 的配置路径

作者:Alexey Bulygin
DMARC 的 none、quarantine 与 reject 策略比较

DMARC 策略告诉接收服务器,如何处理使用你的 From 域名却未通过 DMARC 的邮件。最终决定由接收方按自身规则作出。过早启用严格策略可能影响账单、客服回复和转发邮件;仔细配置则有助于限制直接域名伪造。整体邮件设置可先参考企业邮箱指南。

问题往往不是协议太复杂,而是没有核查实际发送源。有些团队长期保留 p=none 却不分析结果,另一些则在合法发送源尚未成功认证并对齐时,直接启用 p=reject,可能导致正常邮件被拒收。

实用的做法是先用 p=none 了解真实发送源,确认认证成功且对齐后再考虑 p=quarantine,分析剩余失败后才考虑 p=reject。并非所有失败都是伪造,升级时机应取决于实际业务。

什么是 DMARC 策略?

DMARC 策略对使用你的 From 域名、未通过 DMARC 的邮件提出处理建议。选项包括 nonequarantinereject。关键是每个合法发送源是否有成功且域名对齐的 SPF 或 DKIM。

接收方验证 SPF、DKIM,并检查它们与可见 From 域名的对齐。至少一种机制需要同时满足验证成功和域名对齐。

SPF 验证成功且域名对齐,DMARC 就通过。

DKIM 验证成功且域名对齐,DMARC 就通过。

没有成功且对齐的路径时,接收方会考虑 DMARC 策略。

策略记录请求接收方采取的行动适用场景
Nonep=none不因 DMARC 执行限制,并请求报告发现发送源与监测
Quarantinep=quarantine视为可疑邮件,例如放入垃圾邮件逐步执行限制
Rejectp=reject请求拒收,通常在 SMTP 阶段更严格的限制

最初应该选择哪种 DMARC 策略?

除非已确认所有发送源都有成功且对齐的认证,否则可从 p=none 开始。先观察真实流量,再请求更严格的处理。

可用的初始记录示例:

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

这个模式本身不要求阻止伪造,而是让你从提供报告的接收方获得信息。一个域名实际使用的发送系统,往往比管理者以为的更多。

容易遗漏的来源包括:

  1. 发送账单的会计软件。
  2. 发送录用通知的人事或招聘工具。
  3. 发送营销活动的 CRM 和营销平台。
  4. 以主域名回复的客服系统。
  5. 可能影响下一跳 SPF 的用户转发规则。

跳过监测可能让策略影响真实业务邮件。需要核查实际发送路径,而不只是 DNS 语法。

对于批量发件人,DMARC 记录已属于重要的发送要求。Google 的指南涉及域名认证和对齐。这里介绍的协议见 RFC 7489

DMARC 应在 none 模式停留多久?

none 观察两到四周可以作为起点,但不能保证涵盖所有发送周期。月度或不常发生的流程可能需要更长观察时间或专门测试。

三天通常不够,可能错过月度账单、季度通知,以及只偶尔发送密码重置邮件的旧应用。

观察时应覆盖:

  1. 日常业务邮件。
  2. 营销发送。
  3. 账单周期。
  4. 客服升级处理。
  5. 转发邮件。
  6. 第三方自动化。

查看可用的汇总报告,区分已知合法系统、可疑来源和尚未解释的失败。并非所有接收方都会发送报告,也不是每次失败都代表伪造。

例如,通讯邮件平台使用自己的域名签名,SPF 也只为未对齐的平台域名通过。没有成功且对齐的认证路径,DMARC 就失败。下一步应修复对齐,而不是启用 reject。

TrekMail 的 DNS 流程显示所需记录并帮助验证,但不能代替完整的发送源清单。可查看添加域名必需 DNS 记录

为什么转发可能影响 DMARC?

转发会改变发送服务器,原始 SPF 可能失败,因此成功且对齐的 DKIM 通常格外重要。策略本身并不改变验证规则;没有成功且对齐的路径时,DMARC 可能失败。

即使有经验的管理员,也需要区分这些概念。

邮件有多种发送身份。用户看到的是 From,信封发件人则用于退信。SPF 检查对应域名和发送 IP,DMARC 另外检查这个已认证域名与可见 From 的对齐。

转发后,原始 SPF 授权往往不适用于新的 IP。只要已签名数据在规范化规则下保持不变,DKIM 就可能保留。

因此,以下两点可以同时成立:

  1. 转发后 SPF 失败。
  2. DKIM 成功且对齐,因此 DMARC 仍通过。

转发对业务重要时,应在执行限制前测试真实路径和合法发送源的成功对齐 DKIM。发往 Gmail 可参考把域名邮件转发到 Gmail;其他故障可查看邮件转发配置

ARC 可以跨中间系统和邮件列表传递认证上下文,但不能代替自身对齐。是否采信这些信息由接收方决定。协议见 RFC 8617

什么时候改用 quarantine?

当报告和专门测试确认合法发送源有成功且对齐的 SPF 或 DKIM 后,可考虑 quarantine。它请求把失败邮件视为可疑,但不保证进入垃圾邮件,也不保证能够找回。

记录示例:

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

遗漏的发送源可能因此显现,例如邮件落入垃圾邮件。但接收方可能作出其他本地决定,因此仍需主动检查和收集反馈。

可采用以下处理流程:

  1. 用户报告邮件缺失。
  2. 检查发送源、认证与对齐。
  3. 修复 SPF、DKIM 或两者。
  4. 重新测试后再考虑 reject。

部分团队通过 pct=25pct=50 分阶段执行。不同接收方的支持和行为不同,不能保证精确遵守比例。直接升级到 100% 也必须有充分的验证依据。

正确配置的 TrekMail 托管 SMTP 可以为你的域名签名,应通过真实邮件头与对齐检查确认。转发后 SPF 失败、DKIM 成功的常见情况见邮件进入垃圾邮件

什么时候改用 reject?

确认合法来源并调查剩余失败后,才考虑 reject。它请求拒收未通过 DMARC 的邮件,但不保证所有接收方执行相同操作。

记录示例:

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

经过准备后,这可以成为许多域名的合理目标。

可能的益处包括:

  1. 限制受保护域名的直接伪造。
  2. 增加部分钓鱼和发件人域名滥用的难度。
  3. 明确表达认证失败后的处理意愿。
  4. 成为更全面品牌保护措施的一部分。

Google 的发送者 FAQ 介绍拒收和限流,包括 DMARC 相关错误 4.7.31 和对齐问题 4.7.32。退信也可能包含 5.7.26 和域名策略说明。应结合完整错误信息查看Google 电子邮件发件人指南常见问题

需要注意:旧财务 SaaS 没有成功且对齐的认证路径时,账单可能被拒收。应预先验证这些邮件并规划故障处理。

应该在 DNS 发布什么 DMARC 策略记录?

把策略作为 TXT 发布到 _dmarc.yourdomain.com。该名称下只应有一条 DMARC 策略记录,冲突的多条记录可能阻碍解析。

下面是互为替代的示例,不能同时发布:

_dmarc.example.com  TXT  "v=DMARC1; p=none; rua=mailto:dmarc@example.com"
_dmarc.example.com  TXT  "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"
_dmarc.example.com  TXT  "v=DMARC1; p=reject; rua=mailto:dmarc@example.com"

TrekMail 域名配置通常一起处理 MX、SPF、DKIM 和 DMARC。下例仅展示结构,不是直接执行限制的建议;quarantine 并非通用初始策略,SPF 和 DKIM 也须匹配实际外发服务。

@                MX   10 mail.trekmail.net.
@                TXT  "v=spf1 include:spf.trekmail.net -all"
dkim._domainkey  TXT  "<unique value from dashboard>"
_dmarc           TXT  "v=DMARC1; p=quarantine;"

不要发布重复 SPF,也不要猜测 DKIM 值。核查旧 MX 是否仍有用途。自备发送服务时,应按其要求配置 SPF、DKIM,并另行验证对齐。参阅自备 SMTP(BYO)

常见的 DMARC 策略错误

常见问题包括长期不分析 p=none、过早执行限制、只依赖 SPF,以及忽略子域名。实际影响取决于业务配置。

注意以下情况:

  1. none 没有分析和后续计划。报告本身不执行 DMARC 限制。
  2. SPF 状态正常,却没有 DKIM 对齐;转发可能暴露这种依赖。
  3. 忽略子域名继承。可用 sp= 设置不同的子域名策略。
  4. 忽略 SPF 限制:超过 10 个被求值、会触发 DNS 的项可能产生 PermError,不是简单统计全部 DNS 查询次数。
  5. 服务以你的域名发送,却没有检查实际签名方式。

不同子域名处理的示例:

v=DMARC1; p=reject; sp=none; rua=mailto:dmarc@yourdomain.com

主域名请求 reject,继承策略的子域名使用 none。这不只适用于某个选定的测试子域名;子域名自己的具体 DMARC 记录可以覆盖继承策略。

TrekMail 如何支持 DMARC 配置

TrekMail 在多域名面板中结合域名管理、DNS 检查、发送配置和共享存储。这可能减少分散管理,但不能代替外部发送源核查和充分的 DMARC 观察。

价格参考为 Starter 每月 $3.50 起并提供托管 SMTP,Nano 则作为自备 SMTP 的免费方案提供。IMAP 邮箱、自有域名、Catch-all、转发、迁移和 API 的可用性取决于当前套餐及前提条件。选择前请核实价格和功能。

对 DMARC 来说,最重要的是了解所有以你的域名发送的系统。发布 TXT 本身不能完成这项工作。

根据套餐和设置,可以:

  1. 在一处管理多个域名。
  2. 上线前检查必需 DNS 记录。
  3. 在适用付费套餐使用托管 SMTP,或在 Nano 自备 SES/SendGrid。
  4. 把邮箱托管与外发服务选择分开。
  5. 在源服务允许访问时,通过内置 IMAP 迁移导入旧邮件。

完整域名设置见在我的域名设置邮箱。多个品牌或客户域名的管理可参考多域名邮件托管

结论:逐步执行 DMARC 策略

合理的路径从 none 开始,修复认证与对齐,经验证后再到 quarantine,必要时到 reject。每一步都需要实际业务流量的依据。

简要步骤:

  1. p=none 观察,例如 2 到 4 周,并额外覆盖不常发生的发送周期。
  2. 确保每个合法发送源有成功且对齐的 SPF,或优先配置 DKIM。
  3. 核查后再改为 p=quarantine
  4. 调查剩余失败并确认合法来源后,才启用 p=reject

这样可以降低正常邮件受影响的风险,并请求更严格地处理域名伪造,但不构成投递或安全保证。如需统一管理邮箱、转发和迁移,可阅读 TrekMail 文档,或在 https://trekmail.net/pricing 比较套餐。

分享这篇文章

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

登录 TrekMail

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

12 个字符 两次密码一致

重置邮件已发送

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

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