SPF 和 DMARC - 是否使用 spf 策略?

SPF 和 DMARC - 是否使用 spf 策略?

我理解 SPF 如何与 DMARC 对齐有关,但有一件事我不太清楚:SPF 策略(-all~all)是否用于 DMARC?或者 DMARC 是否仅使用 IP 范围?

问题是,众所周知,SPF 中断转发。在转发方面,DKIM 表现要好得多。那么,既然我已经实施了 DKIM+DMARC,我可以放宽我的 SPF 策略吗,因为 DMARC 将负责检查 SPF 对齐?

答案1

它只是检查 IP/主机是否在 SPF 记录中,总体逻辑是:

If the sending IP address is contained in the SPF record = SPF PASS
If the sending IP address is not contained in the SPF record = SPF FAIL

(参见类似网站http://knowledge.ondmarc.com/learn-about-dmarc/all-you-need-to-know-about-spf-dkim-and-dmarc上面的逻辑就是引用自此处)。

DMARC 和 SPF 的策略是独立的。我不会因为有 DMARC 策略而更改 SPF 策略。您应该考虑到并非所有邮件服务器都使用 DMARC,但确实使用 SPF。因此 SPF 策略本身应该是有意义的。

答案2

DMARC 实际上会评估您的 SPF 结果,寻找 PASS,以及smtp.mailfrom域与header.from域之间的一致性。只要 SPF 没有产生通过结果(无论您最后使用的是?all~all还是机制),DMARC 就不会将 SPF 结果视为 PASS。DKIM 也是如此。域应与域一致,结果应为 PASS。-allheader.dheader.from

但是,部分回答您的问题,一些服务器会将 SPF 硬失败(-all)解释为拒绝您的电子邮件的原因,即使它通过了 DKIM 上的 DMARC。

另一方面,并​​非所有接收服务器都会检查 DMARC。因此,SPF 软故障 ( ~all) 不会导致电子邮件被拒绝(一般而言)。同时,SPF 并不是防止欺骗的最佳工具,因为 SPF 是在域而smtp.mailfrom不是域上进行检查header.from,并且只有后者对收件人可见(在大多数客户端软件中)。因此 DMARC 中存在对齐要求。

至于哪种方式更适合转发:视情况而定。有些转发器会重写Return-Path(又名snmtp.mailfrom),这样可以修复 SPF,但会破坏 DMARC 对齐。例如,其他转发器会向字段添加一段文本subject,这反过来会破坏 DKIM 签名(如果是subject签名的标头之一)。情况并不那么明确。已认证接收链(ARC)是一个在这方面很有帮助的协议,尽管它仍处于开发阶段。

我的建议是使用带有软故障机制的 SPF,并使用带有拒绝策略的 DMARC。此外,使用 SPF 和 DKIM 互补可获得最佳效果。

我的想法:您正在 DMARC 中发布明确的指令。收件人需要实施相应的检查。事实上,可以将接收服务器配置为完全忽略 SPF(硬)失败和 DMARC 拒绝策略。这不是发件人的责任,而是收件人的特权。

相关内容