我正在尝试在 VPS 上的电子邮件服务器上设置 SPF/DKIM/DMARC。这是我的 DNS 配置(为了便于阅读,删除了 DKIM 和 DMARC):
@ 28800 A X.X.X.X
@ 28800 MX 10 smtp.example.com.
smtp 28800 A X.X.X.X
www 28800 A X.X.X.X
@ 28800 TXT "v=spf1 ip4:X.X.X.X -all"
smtp.example.com. 28800 TXT "v=spf1 ip4:X.X.X.X -all"
www.example.com. 28800 TXT "v=spf1 -all"
电子邮件似乎有效,并且 port25.com 报告没有错误:
==========================================================
Summary of Results
==========================================================
SPF check: pass
DomainKeys check: neutral
DKIM check: pass
SpamAssassin check: ham
然而,雅虎报告 SPF 失败:
<?xml version="1.0"?>
<feedback>
<report_metadata>
<org_name>Yahoo! Inc.</org_name>
<email>[email protected]</email>
<report_id>1484621522.715243</report_id>
<date_range>
<begin>1484524800</begin>
<end>1484611199 </end>
</date_range>
</report_metadata>
<policy_published>
<domain>example.com</domain>
<adkim>s</adkim>
<aspf>s</aspf>
<p>reject</p>
<pct>100</pct>
</policy_published>
<record>
<row>
<source_ip>X.X.X.X</source_ip>
<count>7</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>example.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>example.com</domain>
<result>pass</result>
</dkim>
<spf>
<domain>myVPS.provider.com</domain>
<result>none</result>
</spf>
</auth_results>
</record>
</feedback>
雅虎似乎正在检查 HELO 名称(此处myVPS.provider.com
),尽管它与发送域具有相同的 IP 地址,但没有 SPF 记录(我无法自己编辑其 DNS 配置)。
如果我的 VPS 提供商将以下内容添加到 DNS 配置中,它会解决问题myVPS.provider.com
吗?
myVPS.provider.com. IN TXT "v=spf1 ip4:X.X.X.X -all"
还有其他选择吗?
希望这是比以前的答案更好的方法:在 MTA 中修改 HELO/EHLO 名称。
使用
exim4
,我将以下内容添加到/etc/exim4/conf.d/main/00_local_settings
:然后在
update-exim4.conf
and之后service exim4 restart
,HELO/EHLO 名称与发件人地址的域名相同。更新 :
这种方法似乎是错误的,因为 HELO 数据应该是 FQDN。我想有一个更好的解决方案:根据OpenSPF FAQ,常见错误部分,
我将与我的 VPS 提供商核实,如果可以,我将相应地测试并更新此答案。
实际上最简单的解决方案可能是修改 FQDN ?
我改变了它(并
hostname example.com
修改了下一次重新启动),如果下一次雅虎报告是肯定的,我会接受这个答案(除非有人有更好的答案,当然......)。/etc/hostname
/etc/hosts