我在使用phphmailer发送的大部分电子邮件中收到softfail。我已经多次更新SPF并且绑定了各种争吵。我已经阅读了大多数相关的stackoverflow帖子,但没有一个能解决我的问题。
效果最佳的spf是:
“v = spf1 mx a a:mail.citynetwork.se?all”
它仍然给我一个softfail和X-Spam-Score为1.4-1.9。
服务器mail.citynetwork.se(91.123.193.200)正在处理所有收到的邮件,包括smtp,但是当他们发送邮件时,他们使用mailout.citynetwork.se(91.123.193.63和91.123.193.90)。
是说: Received-SPF:softfail(google.com:转换为admin@skivbasar.se的域名不指定2a00:16d8:0:12 :: 10作为允许的发件人)client-ip = 2a00:16d8:0:12 :: 10;
收到-SPF:permerror(google.com:在查找admin@skivbasar.se期间处理时出现永久性错误)client-ip = 2a00:16d8:0:12 :: 10;
或 Received-SPF:softfail(google.com:转换为admin@skivbasar.se的域名未指定91.123.193.90为允许的发件人)client-ip = 91.123.193.90;
ip 91.123.193.90(mailout.citynetwork.se)似乎没有任何SPF记录,所以如果我添加它会导致一个错误。
我神奇地得到了一次传球: Received-SPF:pass(google.com:domain of admin@skivbasar.se指定91.123.193.90为允许的发件人)client-ip = 91.123.193.90;
但是当我再次尝试时,它会发生软故障。
SPF:SPF: “v = spf1 mx a include:mail.citynetwork.se -all” 我已经收获了第一次错误,然后是PASS,然后是中性,中立的中性......有人能理解这个吗? SPF记录是否未在我的服务器上立即更新,或者如何使用相同的代码,邮件和SPF进行不同的检查? “include:”和“a:”会给出相同的结果吗? 我需要CIDR地址吗? 应该/我可以添加IP而不是域吗?
答案 0 :(得分:1)
所以你的问题还有很多,我们需要稍微分开一点。首先,请记住SPF是基于DNS的策略,因此策略的评估取决于接收邮件服务器的DNS。因此,由于DNS缓存,策略更改可能不会立即生效,甚至可以针对单个域处理入站电子邮件的不同服务器保持一致。这可以解释为什么你会看到不同的结果。
作为一般规则,在处理调试SPF策略时,应设置较低的TTL(300或600秒)并尝试将更改分隔开来。有些服务器会将1小时以内的任何TTL视为一小时,因此如果您的更改速度过快,您的更改可能无法按预期传播。
现在,关于你应该使用什么政策的另一个问题:
除非您包含在您所包含的域中定义的SPF记录,否则请勿使用“include”。没有为mail.citynetwork.se
定义SPF记录,因此您不应该使用包含指令
作为一般规则,在可能的情况下,最好使用显式IP地址而不是a或mx指令。对于您的情况,v=spf1 ip4:91.123.193.90 ip4:91.123.193.63 ip6:2a00:16d8:0:12::10 ~all
之类的规则应该有效。请注意,这假设IP地址是静态的,可能不是这种情况。
如果IP地址不是静态的,那么您可以在规则中使用a指令。例如,像v=spf1 a:mailout.citynetwork.se ~all
这样的东西。这包括您引用的两个IPv4地址,尽管AAAA记录中的IPv6地址与您的问题中的IPv6地址不完全匹配。您提出问题的时间与现在的地址之间可能已发生变化,或者地址可能不正确。因此,此规则可能无法开箱即用。
因此,将规则更改为我在#2或#3中使用低TTL指定的规则,等待一个小时左右,然后再次运行测试。