是否可以在同一個 SPF 記錄中使用它們?例如:
值 TXT:v=spf1 mx a ptr ip4:46.16.60.0/23 a:cdmon.com mx:mail.solarmora.com include:srv.cat ~all
答案1
是的,您可以組合所有這些關鍵字,只需確保您沒有達到最大的查找限制10筆地址記錄查詢:https://www.rfc-editor.org/rfc/rfc7208#section-4.6.4
- a 和 ptr 關鍵字導致一次尋找
- ptr 關鍵字已棄用,不應再使用
- mx 關鍵字會導致與 MX 記錄返回域一樣多的查找
- 關鍵字
include
包括引用的 SPF 記錄,即:
$ dig srv.cat TXT +short
"v=spf1 a a:include"
而由於域不存在而a:include
導致錯誤。include
答案2
從技術上講,混合任何機制都是可能的,但除了ip4
和ip6
機制之外的任何機制都會導致額外的 DNS 查找,並且總體限制為 10 個 DNS 查詢(RFC 7208,4.6.4)。每個a
都會導致一次額外的查找,每mx
幾次都會導致一次額外的查找,具體取決於其後面的 MX 伺服器的數量。此外,include
可能還具有鍊式機制,該機制也被計入極限。
您應該仔細考慮哪些伺服器真正從網域中發送電子郵件作為信封寄件人並將您的 SPF 記錄限制為僅包含所需的伺服器。由於您的 SPF 記錄現在已放在一起,看來您不具備這方面的知識,並嘗試添加所有內容「以防萬一」。該策略以 結尾~all
,這使得其他所有內容都僅軟故障。這並不能有效地防止濫用;考慮使用-all
, 代替。
也,不使用ptr
(RFC 7208,5.5):
注意:此機制速度較慢,在出現 DNS 錯誤時不如其他機制可靠,並且給 .arpa 名稱伺服器帶來很大負擔。如果使用,則必須為網域主機準備適當的 PTR 記錄,並且該
ptr
機制應該是最後檢查的機制之一。經過多年的SPF部署經驗,得出的結論是沒有必要,應該使用更可靠的替代方案。然而,它仍然作為 SPF 協定的一部分使用,因此相容的check_host()
實作必須支援它。