Skip to content

SPF 語法

SPF 記錄的格式如下:

txt
v=spf1 [mechanisms] [qualifiers]

每個機制的詳細說明如下。

v=spf1

v=spf1 標籤表示 SPF 記錄的版本和協議。SPF 只有一個版本,協議始終為 spf1。

機制

機制是定義如何將發件人的 IP 地址或主機與 SPF policy 匹配的規則。有幾種類型的機制:

標籤描述
a將發件人的 IP 地址與 domain 的 A 或 AAAA 記錄匹配。
mx將發件人的 IP 地址與 domain 的 MX 記錄匹配。
ip4將發件人的 IPv4 地址與特定範圍匹配。
ip6將發件人的 IPv6 地址與特定範圍匹配。
include包含另一個 domain 的 SPF policy。

限定符

限定符是指示接收者如何處理與機制匹配或不匹配的電子郵件的操作。有四種類型的限定符:

標籤描述
+Pass,電子郵件被接受(不建議)。
?Neutral,電子郵件既不被接受也不被拒絕(不建議)。
-Fail,電子郵件被拒絕。
~Softfail,電子郵件被接受但被標記為可疑。

選擇正確的 SPF 限定符

SPF 限定符的選擇取決於 domain 擁有者的偏好和風險承受能力。通常,建議對於發送重要或敏感電子郵件的 domain 使用 Hard Fail (-) 限定符,例如金融或法律服務。這樣,domain 擁有者可以確保只有授權的伺服器可以代表他們發送電子郵件,並且任何偽造的電子郵件都會被接收伺服器拒絕。然而,domain 擁有者還應確保其 SPF 記錄準確且最新,並且包括所有合法的電子郵件來源,例如網頁主機、電子郵件提供商、第三方服務等。否則,他們可能會冒著丟失一些未通過 SPF 檢查的有效電子郵件的風險。

另一方面,對於發送不太重要或不太敏感電子郵件的 domain,例如新聞通訊、行銷或社交媒體,Soft Fail (~) 限定符可能是一個不錯的選擇。這樣,domain 擁有者仍然可以表達他們對授權伺服器的偏好,但也允許接收伺服器在處理電子郵件時有一定的靈活性。這可以減少丟失未通過 SPF 檢查的有效電子郵件的機會,但也可能增加接收通過 SPF 檢查的偽造電子郵件的機會。

Neutral (?)Allow all (+) 限定符不建議用於任何 domain,因為它們不提供任何針對電子郵件偽造和網絡釣魚攻擊的好處或保護。它們基本上禁用了 SPF 機制,允許任何伺服器代表 domain 發送電子郵件。這可能會損害 domain 的聲譽和可傳遞性,並使 domain 的用戶暴露於惡意電子郵件中。

範例

一個簡單的 SPF 記錄範例如下:

txt
v=spf1 mx -all

這意味著只有與 domain 的 MX 記錄對應的 IP 地址被允許代表 domain 發送電子郵件,任何其他 IP 地址都會被拒絕。

相關主題