我正在嘗試在 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"
還有其他選擇嗎?
答案1
希望這是比之前的答案更好的方法:修改 MTA 中的 HELO/EHLO 名稱。
與exim4
,我添加了以下內容/etc/exim4/conf.d/main/00_local_settings
:
REMOTE_SMTP_HELO_DATA=$sender_address_domain
update-exim4.conf
和之後service exim4 restart
,HELO/EHLO 名稱與寄件者地址的網域相同。
更新 :
看來這種方法是錯的,因為 HELO 資料應該是 FQDN。我想有一個更好的解決方案:根據OpenSPF 常見問題解答,常見錯誤部分,
SPF RFC 建議檢查 HELO/EHLO 名稱。發布這些主機名稱的記錄是 SPF 協定的重要組成部分。
我將與我的 VPS 提供者聯繫,如果可以,我將相應地測試並更新此答案。
答案2
實際上最簡單的解決方案可能是修改FQDN?
我改變了它hostname example.com
(並修改/etc/hostname
並/etc/hosts
為下一次重新啟動),如果下一個雅虎報告是肯定的,我會接受這個答案(當然,除非有人有更好的答案...)。