Deliverability

什么是 DMARC 记录?

DMARC 记录是一条 DNS TXT 条目,用于发布你的邮件身份验证策略。

DMARC 记录是一条 DNS TXT 条目,用于发布你的邮件身份验证策略。它位于一个固定位置 _dmarc.yourdomain.com(注意开头的下划线),任何接收邮件的服务器都可以查询它,了解你希望如何处理验证失败的邮件以及将报告发送到哪里。

DMARC 记录放在哪里?

始终位于你要保护的域名的 _dmarc 子域。对于 example.com,记录位于 _dmarc.example.com。对于你用来发信的子域,例如 mail.example.com,记录则位于 _dmarc.mail.example.com,不过大多数团队只在组织域发布一条记录,让它覆盖所有子域。它是一条 TXT 记录,与 SPF 使用的记录类型相同,所以发布过 SPF 记录的人会觉得流程很熟悉。

如果没有 DMARC 记录会怎样?

"No DMARC record found" 表示 _dmarc.yourdomain.com 上没有发布任何内容。这会带来两个后果,第二个往往被忽略。

接收服务器没有来自你的指令,因此每台服务器在邮件验证失败时都按自己的方式处理。而且由于 rua 是请求报告的位置,没有记录就等于没有请求:你收不到聚合报告,也就无法看到谁在以你的域名发信,或者你自己的邮件是否通过了验证。

没有记录与 p=none 不同。p=none 记录是一条已发布的策略,要求接收方不做任何改变,同时仍向你发送报告,这是通常的起步方式。完全没有记录则意味着既没有策略,也没有可见性。

要自行检查某个域名,请查询 _dmarc 名称下的 TXT 记录:

dig +short TXT _dmarc.example.com
nslookup -type=TXT _dmarc.example.com

如果你不想手动查询,邮件分析器可以在浏览器中检查域名,bird email tools audit 则可以在命令行中完成同样的操作。

返回内容包含 v=DMARC1 的就是一条记录。空返回表示确实不存在记录。有两种常见的情况,虽然你发布了内容,但仍会报告为 "not found":

  • 发布在了错误的名称下。 记录必须位于 _dmarc.example.com(带前导下划线),而不是与 SPF 记录一起放在域名根目录下。
  • v 标签格式错误。 v=DMARC1 是必需的且必须排在第一位,因此该处的拼写错误会导致整条记录无法被识别为 DMARC,即使 TXT 条目可以解析。

如果结果是你没有记录,下一步就是如何设置 DMARC,通常的第一条记录是以 p=none 开始,并将 rua 指向你会查看的邮箱。

DMARC 记录长什么样?

下面是一个简单的示例:

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

从左到右读,它表示:这是一条 DMARC 版本 1 的记录,暂不执行强制策略(仅监控),并将聚合报告发送到 dmarc@example.com。一条更完整的记录可能是这样的:

v=DMARC1; p=quarantine; sp=reject; rua=mailto:agg@example.com; ruf=mailto:forensic@example.com; adkim=s; aspf=r

每条记录都只是一组用分号分隔的 tag=value 对。其中两个是必需的(vp);其余为可选,且有合理的默认值。

每个 DMARC 标签是什么意思?

标签是否必需作用示例
v协议版本。始终为 DMARC1,且必须排在第一位。v=DMARC1
p主域名的策略:nonequarantinerejectp=quarantine
sp子域名的策略,当你希望它与 p 不同时使用。sp=reject
rua聚合(汇总)报告的接收地址。rua=mailto:agg@example.com
ruf取证(逐条失败)报告的接收地址。ruf=mailto:forensic@example.com
adkimDKIM 对齐模式:r 宽松(默认)或 s 严格。adkim=s
aspfSPF 对齐模式:r 宽松(默认)或 s 严格。aspf=r
fo取证报告选项:何时生成失败报告。fo=1
ri聚合报告发送间隔,以秒为单位(默认 86400)。ri=86400

你最常用到的两个标签是 pruap 是你的执行级别,选好它是成功上线的关键(完整说明见什么是 DMARC 策略)。rua 是接收每日汇总报告的地址,你真正能从中获得洞察。

rua 和 ruf 有什么区别?

rua 收集聚合报告:XML 格式的汇总,通常每个提供商每天发送一份,涵盖他们看到的所有以你域名发出的邮件。这是值得关注的数据流。ruf 收集取证报告,即验证失败的单封邮件的副本(通常经过脱敏处理)。许多提供商出于隐私原因根本不发送取证报告,所以 ruf 邮箱安静是正常的。当报告开始到达时,如何阅读 DMARC 报告会逐字段讲解。

对齐标签有什么作用?

adkimaspf 控制域名匹配需要多精确。宽松模式(r)允许子域与组织域匹配,因此 mail.example.com 可以与 example.com 对齐。严格模式(s)要求完全匹配。宽松是默认值,也是几乎所有人的正确选择;只有在你有明确理由时才使用严格模式。对齐是 DMARC 比单独使用 SPF 或 DKIM 更强的机制,DMARC 的工作原理解释了原因。

如何发布和检查记录?

通过你的 DNS 托管商添加 TXT 记录,然后确认它能正确解析。包括 cPanel 操作演示在内的分步指南见如何设置 DMARC。如果你通过 Bird 发信,DKIM 和 SPF 的对齐已通过你的发送域记录完成,因此发布这条 DMARC 记录并将 rua 指向你会查看的邮箱就完成了大部分工作。文档中的身份验证指南包含 Bird 相关的详细信息。

一条 DMARC 记录虽然很短,但在一行之中承担了大量工作。把 prua 设对,其他一切都可以之后再调整。

基于同一网络构建。

测试 API 密钥即刻获取。添加付款方式并验证发送者身份后,即可解锁生产环境。

你的下一个创意。
随时连接。