DNS (spf) 配置中的 ?all -all 和 ~all

IXN*_*IXN 5 dns spf cpanel

我尝试使用电子邮件营销服务配置/验证我的域 DNS。为了验证 SPF,我需要添加一些代码。

我想使用各种服务,并在TXT他们提供的说明中,最后,一些使用-all,其他~all,和一些?all

例如:

v=spf1 include:spf.mailjet.com include:spf.sendinblue.com mx ~all
Run Code Online (Sandbox Code Playgroud)

我想知道这样的两个记录是否互斥, 和 的区别?all-all什么~all

Syn*_*hro 10

all机制是 SPF 记录中列出的最后一个机制,它告诉检查器在没有其他机制与传入 IP 匹配的情况下该怎么做。-all表示默认结果是硬失败,~all表示“软失败”,表示它不是通过,但也不是硬拒绝(也许表明您应该将其放入垃圾邮件文件夹 - 尽管这应该是 DMARC 的决定)。?all意味着它是“中性的”,这与根本没有任何东西相同。

当类似的服务推荐时?all,他们是超级保守的,不想增加任何类型的风险 - 这是一个“故障安全”选项,提供最小的干扰,但也没有保护。我想说这会适得其反,最终只会让伪造品发生,完全违背了使用 SPF 的初衷。请参阅我自己的服务的建议

“正确的方法”是使用~all默认值,并将 DMARC 记录配置为需要 DKIM 和 SPF “通过”结果。这样做有一个历史原因:早期的 SPF 过滤器实现如果遇到 ,将完全停止电子邮件处理-all,并且 DMARC 处理将没有机会执行其操作,因此给出软失败会更安全,然后让 DMARC 考虑失败。

简而言之,如果您使用 DMARC,请瞄准-all,如果使用,请使用~all