为什么 SPF 允许+all?

jrt*_*ell 2 email spf

我正在查看各个站点如何设置 SPF 记录,并发现了一个 SPF 记录以+all.

这似乎是一个坏主意,spf-all对此事做了以下说明:

+all Pass 该电子邮件绝不是伪造的。不应使用此选项。

但我在 RFC 中找不到任何表明此内容被禁止的内容,因此它似乎是有效的记录。

这是有效记录吗?如果是这样,大多数垃圾邮件过滤器是否会将此视为在将来自该域的邮件视为垃圾邮件之前提高该邮件所需的垃圾邮件级别的指示,还是会简单地忽略该记录,或将其计入该域?

Pat*_*zek 5

SPF 在RFC 7208中定义。

“所有”关键工作定义如下:

5.1. “全部”

全部=“全部”

“all”机制是始终匹配的测试。它用作记录中最右边的机制来提供显式默认值。

例如:

 v=spf1 a mx -all
Run Code Online (Sandbox Code Playgroud)

“全部”之后的机制永远不会被测试。“全部”之后列出的机制必须被忽略。当记录中存在“全部”机制时,无论术语的相对顺序如何,都必须忽略任何“重定向”修饰符(第 6.1 节)。

你甚至还有这个例子:

v=spf1 +all

  -- any <ip> passes
Run Code Online (Sandbox Code Playgroud)

或者

example.com.           SPF  ( "v=spf1 "
                              "-include:ip4._spf.%{d} "
                              "-include:ptr._spf.%{d} "
                              "+all" )
ip4._spf.example.com.  SPF  "v=spf1 -ip4:192.0.2.0/24 +all"
ptr._spf.example.com.  SPF  "v=spf1 -ptr +all"

This example shows how the "-include" mechanism can be useful, how an
SPF record that ends in "+all" can be very restrictive, and the use
of De Morgan's Law.
Run Code Online (Sandbox Code Playgroud)

所以+all很有用,而且肯定不会被禁止。

至于垃圾邮件过滤器,很难说他们是如何对待的,这是本地策略配置。