如何接收 DMARC 报告:DMARC 报告设置指南

DMARC Reporting RUA RUF

通过发送 DMARC 报告到指定的邮箱,DMARC 能够揭示电子邮件系统的验证状态。在本文中,我们来看看如何设置 DMARC 来接收报告。

当在 DNS 中发布一个 DMARC 记录的时候,您不仅可以设置策略来指定邮件服务器来如何处理未通过验证的邮件,也可以通过 rua 和 ruf 标签来要求邮箱服务提供商把 DMARC 报告发送到指定的地方。

这些报告包含邮件流或者单一邮件的信息,让您可以了解邮件流的验证情况。应该持续监测来正确地验证所有合法的邮件流。

一个典型的 DMARC 报告场景

首先看一下在一个典型的 DMARC 报告场景中的几个参与方:品牌,邮件发送服务,邮箱服务提供商,以及记录接收者。

品牌是要实施 DMARC 的域名的所有者。比如说,如果公司 AcmeCorp 拥有域名 acmecorp.com,AcmeCorp 就是品牌。

通过使用邮件发送服务,品牌能够将邮件发送到顾客,合作方等。举个例子,AcmeCorp 使用 SendGrid 来发送邮件。

邮箱服务提供商为邮件终端用户托管邮箱。比如说,Gmail 作为一个邮箱服务提供商,为超过 10 亿的用户提供邮箱服务。来自邮件发送服务的电子邮件被投递并且被保存到邮箱当中,这样方便用户查看。

记录接收者是接收 DMARC 报告的电子邮件地址。品牌可以选择任意电邮地址来接收 DMARC 报告。品牌的系统管理员需要下载和分析这些报告。

整个报告场景如下所示:

DMARC 报告场景

设想下面的情形:

  • AcmeCorp 的 IT 管理者发布了一个 DMARC 记录在域名 acmecorp.com 上;
  • 该 DMARC 记录将 rua 指向电子邮件地址 [email protected]
  • AcmeCorp (也许还有恶意冒发者) 代表 acmecorp.com 发送大量的商务邮件到公司的顾客;
  • 类似于 Gmail 的邮箱服务提供商将相关的 DMARC 报告发送到 [email protected]

2 种 DMARC 报告

DMARC 支持 2 种报告:聚合报告和失败 (法庭) 报告。这 2 种报告分别有不同的用途。

聚合报告包含关于邮件流的信息,包括:

  • 源 IP;
  • 发送报告的组织;
  • SPF 域名;
  • SPF 结果:pass 或者 fail;
  • SPF 验证结果:none, neutral, pass, fail, softfail, temperror, 或者 permerror;
  • DKIM 域名;
  • DKIM 结果:pass 或者 fail;
  • DKIM 验证结果:none, neutral, pass, fail, policy, temperror, 或者 permerror;
  • 处理方式:none, quarantine, 或者 reject;
  • 发送日期。

通常聚合报告被用来分析邮件流的验证状态,并帮助最终达到完全的 DMARC 保护 (p=reject)。

失败 (法庭) 报告包含单一邮件的信息,包括:

  • 到达日期;
  • 源 IP;
  • 来源;
  • 目的地;
  • 主题;
  • 内容;

还有更多...

如上所述,失败报告包含个人信息 Personally Identifiable Information (PII)。出于隐私的原因,很多邮箱服务提供商包括 Gmail 已经不再提供对 DMARC 失败报告的支持。作为结果,仅有一些邮箱服务提供商仍然发送失败报告,包括 LinkedIn 和 163.com。如果你没有收到期待中的失败报告的话,请记得这一点。

要查看哪些域名发送 DMARC 失败报告,请参阅哪些域名发送 DMARC Forensic (Failure) 报告?

请求发送聚合报告

请求邮箱服务提供商发送 DMARC 聚合报告到指定的电邮地址相当简单。只需要在 DMARC 记录的 rua 标签中指定一个电邮地址即可。

比如,如果要将聚合报告发送至:[email protected],可以发布一个如下的 DMARC 记录:

v=DMARC1; p=none; rua=mailto:[email protected];

请求发送失败报告

和聚合报告类似,可以请求将失败报告发送到任意的电邮地址。

比如,如果要将失败报告发送至:[email protected],可以添加一个 ruf 标签指向该地址:

v=DMARC1; p=none; rua=mailto:[email protected]; ruf=mailto:[email protected];

设置外部目的地验证 (External Destination Verification, EDV)

在上面的讨论中,假设您拥有 reporting.org,因此您请求将报告发往该域名上面的电邮地址是完全合法的。但是,如果某个组织之外的不怀好意者尝试将报告发送至 [email protected],那不就使该邮箱充斥大量的垃圾邮件吗?

答案是肯定的。这就是为什么在 rua 和 ruf 标签中指定的域名的所有者授权之前,DMARC 不会发送报告。

要了解如何设置 EDV,请参阅:为什么接收不到 DMARC aggregate 或者 forensic 报告?

DMARC 报告间隔

在可选的 ri 标签中,可以指定 DMARC 聚合报告发送的时间间隔。单位是秒。

举个例子,下面的 DMARC 记录请求每 86400 秒发送一次报告,也就是 24 小时:

v=DMARC1; p=none; rua=mailto:[email protected]; ruf=mailto:[email protected]; ri=86400;

注意如果这个数字低于 86400 的话,并非所有的邮箱服务提供商都会遵循。如果是这样的话,该值会被忽略,聚合报告会被每天发送。

为接收 DMARC 报告设置邮箱

有几个方式来准备接收 DMARC 报告的邮箱。可以选择其中一种:

  • 使用 DMARCLY 的自动生成的邮箱;这是最简单的办法,因为它处理下载,分析,和渲染 DMARC 报告。注册来使用 DMARCLY 的邮箱;
  • 使用您自己的邮箱;您需要维护自己的邮箱并且处理下载,分析,和渲染 DMARC 报告。

故障排查

如果已经设置好了 DMARC 监测,几天以后仍然没有收到报告,可能需要检查 DMARC 设置。

参阅这篇文章为什么接收不到 DMARC aggregate 或者 forensic 报告?来排查 DMARC 报告故障。

Previous Post Next Post

 Protect Business Email & Improve Email Deliverability

Get a 14 day trial. No credit card required.

Create Account