我似乎无法在所有情况下都满足 SPF 记录的 HELO 检查。我的域有一条这样的 SPF 记录:
"v=spf1 mx -all"
区域中的 MX 记录为:
mx0.mydomain.org.uk. 3600 IN A 1xx.xx.xx.59
mx0.mydomain.org.uk. 3600 IN AAAA 2001:xxx:x:xxx::3b
mx1.mydomain.org.uk. 3600 IN A 2xx.xx.xxx.201
mx1.mydomain.org.uk. 3600 IN AAAA 2a03:xxx:xx:xxx::2
发送服务器的主机名(和 PTR)是mail.mydomain.org.uk
。其 IP 与 相同mx0.mydomain.org.uk
。HELO 名称是mydomain.org.uk
。
我可以让 HELO 通过上述 SPF 记录:
SPF helo header Received-SPF:
pass (mydomain.org.uk: 1xx.xx.xx.59 is authorized to use 'mydomain.org.uk' in 'helo' identity (mechanism 'mx' matched))
receiver=ts11-do.checktls.com; identity=helo; helo=mydomain.org.uk; client-ip=1xx.xx.xx.59
但是,有些检查器不喜欢这样,并说他们找不到发件人的 A 记录mydomain.org.uk
。但如果我将 HELO 更改为,mx0.mydomain.org.uk
则会因“没有可用的适用发件人策略”而失败:
SPF helo header Received-SPF:
none (mx0.mydomain.org.uk: No applicable sender policy available) receiver=ts11-do.checktls.com; identity=helo; helo=mx0.mydomain.org.uk; client-ip=1xx.xx.xx.59
SPF helo local mx0.mydomain.org.uk: No applicable sender policy available
我怎样才能满足这两项检查?
SPF 通常会忽略HELO名称而使用MAIL FROM名称,但当MAIL FROM为空时,它会使用HELO名称。
使用选项 2。
“无”并不代表拒绝。
看到
mx0.mydomain.org.uk
另一端没有理由查看mydomain.org.uk
它,而是会查找 上的 SPF 记录mx0.mydomain.org.uk
。您可以通过为 mx0.mydomain.org.uk 添加 SPF 记录来解决这个问题。例如:
"v=spf1 a -all"
。虽然我接受了@jasen的答案,但邮件服务器的HELO需要与MX记录相同。如果我们需要在不同的IP地址上发送和接收,这可能会在将来带来不便。
所以我实际上是这样解决的:
将发送服务器的名称保留为
mail.mydomain.com
,但使其与 HELO 名称相同。拥有域名的SPF记录如下(授权所有MX记录的地址):
@ IN TXT "v=spf1 mx -all"
mail.mydomain.com
):mail IN TXT "v=spf1 a -all"
现在我尝试过的检查 服务表明一切正常。