基于网域的邮件身份验证、报告和一致性协议 (DMARC) 政策是通过一行文本值(一行值对应一个 DMARC 记录)来定义的。DMARC 记录规定了:
- DMARC 检查邮件的严格程度
- 接收服务器在收到未通过身份验证检查邮件时的建议操作
DMARC 政策选项
如果您网域发出的邮件未通过 DMARC 身份验证检查,这时 DMARC 政策就会建议接收邮件服务器应如何处理。
下方是 DMARC 政策记录的一个示例。您必须先列出 v 和 p 标记,其他标记则可按任意顺序排列:
v=DMARC1; p=reject; rua=mailto:postmaster@solarmora.com, mailto:dmarc@solarmora.com; pct=100; adkim=s; aspf=s
DMARC 记录标记定义和值
狗牌 | 说明和值 |
v |
DMARC 版本。必须为 DMARC1。 必须提供此标记。 |
p | 指示邮件接收服务器如何处理未通过身份验证的邮件。
必须提供此标记。 BIMI 注意事项:如果您的网域使用 BIMI,DMARC 的 p 选项必须设为 quarantine 或 reject。BIMI 不支持 p 选项设置为 none 的 DMARC 政策。 |
pct |
指定未通过身份验证的邮件中有百分之多少受 DMARC 政策约束。在逐步部署 DMARC 时,您可以先从一小部分邮件开始。随着更多来自您网域的邮件通过接收服务器的身份验证,请更新您的记录,将此选项的值设为更高的百分比,直至达到 100%。 必须是 1 到 100 之间的整数。如果您不在记录中使用此选项,则系统会将 DMARC 政策应用于从您网域发出的所有邮件。 此标记是可选的。 BIMI 注意事项:如果您的网域使用 BIMI,DMARC 政策的 pct 值必须为 100。BIMI 不支持 pct 值小于 100 的 DMARC 政策。 |
rua |
用于接收有关您网域的 DMARC 活动报告的电子邮件地址。 该电子邮件地址必须包含 mailto:, 要向多个电子邮件地址发送 DMARC 报告,请使用英文逗号分隔各个电子邮件地址,并在每个地址前添加 mailto: 前缀。例如: 此选项可能会导致系统发送大量报告电子邮件。我们建议您不要使用自己的电子邮件地址,而是考虑使用专用邮箱、群组或专门处理 DMARC 报告的第三方服务。 此标记是可选的。 |
ruf |
不支持。 Gmail 不支持用于发送失败报告的 ruf 标记。失败报告也称为取证报告。 |
sp | 为主网域中的子网域发送的邮件设置政策。如果您想为子网域指定不同的 DMARC 政策,请使用此选项。
如果您不在记录中使用此选项,则子网域会沿用针对父级网域设置的 DMARC 政策。 此标记是可选的。 |
adkim | 设置 DKIM 匹配政策,用于指定邮件信息与 DKIM 签名应有的匹配程度。了解匹配的工作原理。
此标记是可选的。 |
aspf | 设置 SPF 匹配政策,用于指定邮件信息与 SPF 签名应有的匹配程度。了解匹配的工作原理。
此标记是可选的。 |
刚开始使用 DMARC 时,我们建议将政策的强制执行选项设为 none。如果您已了解接收服务器如何对来自您网域的邮件进行身份验证,就可以更新您的政策。随着时间的推移,可以先将收件人政策改为 quarantine,最后再改为 reject。要查看在 DMARC 部署期间所更新的 DMARC 政策的示例,请参阅教程:DMARC 部署建议。
政策的强制执行选项 | 建议执行的操作 | 更多信息 |
none | 如果邮件未通过接收服务器的 DMARC 检查,则系统不会对邮件执行任何操作,而是将其照常递送至收件人。 |
如果您是首次设置 DMARC,建议您使用此选项。如果选择 none 选项,您网域的邮件会正常递送。在您的政策设为 none 期间,请定期查看 DMARC 报告,了解系统如何对您的邮件进行身份验证和递送。 接收服务器向您发送的 DMARC 报告中会列出未通过 SPF 或 DKIM 身份验证的邮件的详细信息。如果您发现有大量来自您网域的邮件被发送至“垃圾邮件”文件夹,那么您应检查 SPF 和 DKIM 配置。详细了解如何排查 DMARC 相关问题。 当您了解了未通过接收服务器身份验证的邮件是哪些之后,方可将政策的强制执行选项更改为 quarantine 或 reject。 BIMI 注意事项:如果您的网域使用 BIMI,DMARC 强制执行政策的 p 值必须设置 quarantine 或 rejectBIMI 不支持 p 选项设置为 none 的 DMARC 政策。 |
quarantine | 如果邮件未通过接收服务器的 DMARC 身份验证,则会被发送至收件人的“垃圾邮件”文件夹。如果接收服务器配置了隔离区,那么邮件可能会被发送到隔离区,而不是直接发送到收件人的“垃圾邮件”文件夹。 | 在使用此选项期间,您会继续收到 DMARC 报告。 |
reject | 如果邮件未通过接收服务器的 DMARC 身份验证,则会被拒且不会递送至收件人。接收服务器通常会向发件人发送系统退信。 |
我们建议针对所有 DMARC 政策选择“reject”作为最终选项,且不再更改。 在使用此选项期间,您会继续收到 DMARC 报告。 如果 DMARC 报告显示所有有效邮件均通过身份验证并正常递送,那么您可以将政策更新至此选项。拒绝未通过身份验证的邮件可以保护收件人免遭垃圾邮件、仿冒邮件和网上诱骗邮件的侵害。 |
DMARC 匹配选项
邮件能否通过 DMARC 检查,取决于邮件的“发件人:”标头与 SPF 或 DKIM 所指定的发送网域的匹配程度。这种检查方式叫做“匹配”。
目前有两种匹配模式可供选择:严格模式和宽松模式。您可以在 DMARC 记录中设置 SPF 和 DKIM 匹配模式。这两种匹配模式分别使用 DMARC 记录标记 aspf 和 adkim 来设定。
在以下情况下,建议您考虑改用严格匹配模式,更有效地防范仿冒邮件:
- 由不受您控制的子网域为您的网域发送邮件
- 您有由其他实体管理的子网域
要通过 DMARC 检查,邮件必须至少通过以下检查之一:
- SPF 身份验证和 SPF 匹配
- DKIM 身份验证和 DKIM 匹配
如果邮件未通过以下任何检查,就无法通过 DMARC 检查:
- SPF(或 SPF 匹配)
- DKIM(或 DKIM 匹配)
身份验证方法 | 严格匹配 | 宽松匹配 |
SPF | 通过 SPF 身份验证的域名与“发件人:”标头地址中的域名完全匹配。 | “发件人:”标头地址中的域名必须与通过 SPF 身份验证的域名匹配,或者属于其子域名。 |
DKIM | 相关 DKIM 域名与“发件人:”标头地址中的域名完全匹配。 | “发件人:”标头地址中的域名必须与 DKIM 签名 d= 标记中指定的域名匹配,或者属于其子域名。 |
了解信包发件人和“发件人:”地址
电子邮件使用两类地址表示发件人。设置 SPF、DKIM 和 DMARC 时,务必了解这些地址之间的区别。
邮件的信包发件人地址和“发件人:”地址可以是相同的,也可以是不同的。
信包发件人地址 - 表示邮件来源的电子邮件地址。无法递送邮件通知或系统退信都会发送至此地址。信包发件人地址又称“返回路径”地址或退回地址。邮件收件人无法看到信包发件人地址。
SPF 通常使用邮件信包发件人地址进行身份验证。
“发件人:”地址 - 邮件标头中的电子邮件地址。邮件由两个部分组成:邮件标头和邮件正文。标头中包含有关邮件的信息,包括发件人姓名和电子邮件地址、邮件主题以及发送日期。“发件人:”标头包含电子邮件地址,其中通常含有邮件发件人姓名。
DKIM 使用邮件的“发件人:”地址进行身份验证。
SPF 匹配示例
使用 SPF 匹配模式时,系统会比较通过 SPF 身份验证的域名(通常是信包发件人地址)与邮件“发件人:”标头地址中的域名,判断二者是否一致。以下是一些匹配示例和相应的 SPF 检查结果。
信包发件人地址 | “发件人:”标头地址 | 严格匹配 | 宽松匹配 |
jon@solarmora.com |
jon@solarmora.com |
通过 | 通过 |
jon@mail.solarmora.com |
jon@solarmora.com |
未通过 | 通过 |
jon@solarmora.org |
jon@solarmora.com |
未通过 | 未通过 |
DKIM 匹配示例
使用 DKIM 匹配模式时,系统会比较邮件标头中 DKIM 签名域名字段 (d=) 的值与邮件“发件人:”标头中的域名,判断二者是否一致。
以下是一些匹配示例和相应的 DKIM 检查结果:
“发件人:”标头 | DKIM d=domain(域名) | 严格匹配 | 宽松匹配 |
jon@solarmora.com |
solarmora.com |
通过 | 通过 |
jon@mail.solarmora.com |
solarmora.com |
未通过 | 通过 |
jon@solarmora.org |
solarmora.com |
未通过 | 未通过 |
DMARC 报告选项
您可以将 DMARC 设置为请求报告,这样当电子邮件服务器收到来自您网域的电子邮件时,就会向您发送常规报告。
DMARC 报告会提供以下信息:
- 为您的网域发送邮件的服务器或第三方发件人有哪些
- 来自您网域的邮件通过 DMARC 检查的占比
- 哪些服务器或服务发送的邮件未通过 DMARC 检查
- 邮件接收服务器对来自您网域但未通过身份验证的邮件所执行的 DMARC 操作:none、quarantine 或 reject。
要开始接收 DMARC 报告,请在 DMARC 记录中使用 rua DMARC 记录标记。
详细了解 DMARC 报告。