答案1
了解各种身份验证机制针对哪些地址进行检查非常重要。一封电子邮件至少有两个发件人地址——信封发件人 (RFC 5321) 和邮件头发件人 (RFC 5322)。SPF 针对信封发件人地址进行检查,而 DMARC 针对邮件头发件人进行检查。如果我们使用一些示例:
ENV From: [email protected]
HEADER From: [email protected]
如果您缺少 SPF 记录,则自动通过,并且域名相同,因此 DMARC SPF 对齐将通过。
ENV From: [email protected]
HEADER From: [email protected]
SPF 会根据 differentdomain.com 进行检查,并且根据其规则可能会通过也可能不会通过,并且 DMARC 会根据您的域名进行检查,但由于域名不同,SPF 对齐将失败。
DMARC 要求 SPF 对齐或者DKIM 对齐通过。要使 SPF 对齐通过,ENV From 域必须与标头 from 域相同,并且 SPF 必须通过。要使 DKIM 对齐通过,DKIMd=
属性中指定的域必须与标头 from 中的域匹配,并且 DKIM 签名必须有效。
如果您的地址在标头中,您将收到 DMARC 报告,但如果信封中的不是您的域名,您可能会看到任何域名的 SPF 结果。无论哪种情况,如果它经过正确的 DKIM 签名,它仍将通过 DMARC,因为请记住,只有一个或另一个对齐检查需要通过。
答案2
报告中的一个例子DMARC
:
主机216.207.245.17
(反向查找告诉我们lists.digium.com
)代表您的电子邮件域发送了 147 封电子邮件。这些电子邮件通过了SPF
检查,但由于用于检查的域SPF
不对齐与您的电子邮件域有关,但它失败了DMARC
。
尤其是电子邮件转发器/邮件列表的行为方式也是如此。在将电子邮件分发给列表成员之前,会重写退回地址(又名 smtp.mailfrom / return-path / 信封发件人地址),以便将未送达报告 (NDR) 发送回邮件列表提供商,而不是原始发件人。
虽然FROM
地址会在电子邮件客户端中显示给收件人,但该envelope from
地址是隐藏的,但是用于检查 SPF。这就是 DMARC 对防止网络钓鱼如此重要的原因,因为SPF
(或DKIM
)本身无法验证FROM
收件人看到的地址。
邮件列表通常的行为方式会导致DMARC
在检查时身份验证失败,因为域与域SPF
之间的对齐被删除。此外,有时签名字段(如主题)会被编辑,这会破坏原始 DKIM 签名。这正是envelope from
FROM
DKIM
ARC
(已认证接收链)正在创建,作为 的扩展DMARC
。不幸的是,ARC
仍处于草稿阶段。
因此,如果我们回顾我们的示例,邮件列表提供商会将地址重写envelope from
为[email protected]
,接收邮件服务器会检查域中的记录lists.digium.com
,SPF
结果发现:"v=spf1 a mx ip4:216.207.245.0/26 ~all\"
。SPF
通过(216.207.245.17
属于范围的一部分216.207.245.0/26
),DMARC
失败。根据您的DMARC
策略操作和接收服务器配置,电子邮件可能会被标记为垃圾邮件、被隔离、被拒绝或被发送到收件箱。