我有以下 DNS 配置:
$ dig +noall +answer -t txt example.com
example.com. 626 IN TXT "v=spf1 +a +mx include:sendgrid.net include:_spf.google.com -all"
$ dig +noall +answer -t txt google._domainkey.example.com
google._domainkey.example.com. 600 IN TXT "v=DKIM1; k=rsa; ......"
$ dig +noall +answer -t txt _dmarc.example.com
_dmarc.example.com. 300 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:report@email; aspf=s; adkim=r;"
$ dig +noall +answer -t txt em1234.example.com
em1234.example.com. 358 IN CNAME 1234.xyz.sendgrid.net.
1234.xyz.sendgrid.net. 358 IN TXT "v=spf1 ip4:149.72.253.162 -all"
当我从发送电子邮件时,example.com
一切都很好,DMARC 正在通过。通过 SendGrid 和子域发送的电子邮件也是如此em1234.example.com
。但是,报告发送到的报告工具声称 100% SPF 对齐失败,这很奇怪,因为 Gmail 和电子邮件标头的状态恰恰相反:
ARC-Authentication-Results: i=1; mx.google.com;
dkim=pass [email protected] header.s=s1 header.b=Rv669YsQ;
spf=pass (google.com: domain of bounces+4746099-3d38-recipient_email=recipient.com@em1234.example.com designates 149.72.253.162 as permitted sender) smtp.mailfrom="bounces+4746099-3d38-recipient_email=recipient.com@em1234.example.com";
dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=example.com
所以我在这里遇到的问题是如何使 SendGrid 使用的子域与 SPF 对齐?这是修复此设置的唯一方法aspf
还是relaxed
还有其他方法?
答案1
在这种情况下,DMARC 通过,但 SPF 对齐失败。由于 sendgrid 代表example.com
以下服务器发送电子邮件,因此接收邮件服务器看到的是:
- mail.FROM 地址(收件人看到并回复的地址)是
@example.com
。 - Return-Path 标头(投递失败和退回邮件的目的地)是
@em1234.example.com
DMARC 检查 3 件事:
- SPF 能通过吗?
- DKIM 通过了吗?
- SPF 或 DKIM 是否对齐?
DMARC 要想通过,这 3 个条件都必须满足。
在您的示例中,您的 DMARC 记录指定了aspf=s
(严格)和adkim=r
(宽松)。当模式为严格时,mail.FROM 和 Return-Path 中列出的两个域必须完全匹配才能通过对齐。当模式为宽松时,子域也将通过。
由于 SPF 和 DKIM 均通过,并且 DKIM 处于对齐状态(由于采用宽松模式),因此 DMARC 通过。但是,由于 SPF 对齐检查处于严格模式,并且两个域不完全匹配,因此 SPF 对齐失败。
DMARC 仅要求 SPF 对齐或 DKIM 对齐之一通过。因此,通过 DMARC 测试并不意味着 SPF 和 DKIM 都对齐。
您的报告工具是正确的。您需要aspf=r
在这种情况下进行更改。或者,您必须让 sendgrid 使用相同的 header.FROM 和 Return-Path 域。但是,第三方电子邮件系统通常会使用主域的子域。因此,除非 sendgrid 有任何其他选项,否则需要将 SPF 对齐检查更改为宽松模式,并且不会对您的组织造成任何风险。
有关 SPF 对齐的更多信息,请参见此处:https://mxtoolbox.com/dmarc/spf/spf-alignment
Sendgrid 文档中具体描述了该问题:https://support.sendgrid.com/hc/en-us/articles/13925777447451-如何使用自定义返回路径与严格 SPF 标识符对齐-DMARC 策略
我注意到 Sendgrid:
- 支持自定义返回路径
- 不建议使用严格对齐
- 使用自定义返回路径意味着您实际上是从@subdomain.example.com 发送邮件,而这通常是我们所不希望的。