![「-all」在包含的(輔助)SPF 記錄中扮演什麼角色?](https://rvso.com/image/1518620/%E3%80%8C-all%E3%80%8D%E5%9C%A8%E5%8C%85%E5%90%AB%E7%9A%84%EF%BC%88%E8%BC%94%E5%8A%A9%EF%BC%89SPF%20%E8%A8%98%E9%8C%84%E4%B8%AD%E6%89%AE%E6%BC%94%E4%BB%80%E9%BA%BC%E8%A7%92%E8%89%B2%EF%BC%9F.png)
在 SPF 記錄中,該-all
選項意味著“我僅將我在此處明確列出的計算機/網域列入白名單,並且沒有其他伺服器可以為該網域發送電子郵件。”
include:
那麼,當人們使用SPF 記錄中的選項來包含第二筆 SPF 記錄時,這意味著什麼?中學SPF有記錄-all
嗎?它存在的話有什麼作用呢?
答案1
包含機制將觸發對包含記錄的遞歸評估。如果此評估失敗(例如,透過包含的記錄中的 -all),則包含機制的結果將被視為「不匹配」。因此,實際上,包含的 SPF 記錄中的 -all 機制(或任何其他帶有 - 限定符的機制)不會對主記錄的評估產生任何影響。
有關包含機制如何影響主記錄評估的完整概述,請參閱 RFC 7208 第 5.2 節的表格(https://www.rfc-editor.org/rfc/rfc7208#section-5.2)
答案2
為了透過 SPF 檢查,發送 IP 位址必須通過至少一種機制。包含機制使用包含的 SPF 記錄測試傳入 IP 位址並「傳回」結果。
使用你的例子:
a.example.com IN TXT "v=spf1 include:b.example.com +all"
b.example.com IN TXT "v=spf1 -all"
包含的記錄將返回失敗,因為它只包含一個-all
機制。但是,第一筆記錄會通過,因為它有+all
機制。
使用更詳細的範例:
a.example.com IN TXT "v=spf1 ip4:1.2.3.4 mx include:spf.example.org -all"
a.example.com IN MX 0 mailserver.example.com
mailserver.example.com IN A 1.2.3.5
spf.example.org IN TXT "v=spf1 ip4:4.3.0.0/16 -all"
我將按照記錄中指定的順序寫下每種機制的結果。因此,結果將採用如下格式:
- a.example.com:
[ip4] [mx] [include] [-all]
- spf.example.org:
[ip4] [-all]
使用以下寄件者地址:
1.2.3.4
- spf.example.org ->
fail fail
- a.example.com ->
pass fail fail fail
最終結果將是pass
,因為至少通過了一項檢查
1.2.3.5
- spf.example.org ->
fail fail
- a.example.com ->
fail pass fail fail
最終結果將是pass
,因為至少通過了一項檢查
4.3.10.20
- spf.example.org ->
pass fail
- a.example.com ->
fail fail pass fail
最終結果將是pass
,因為至少通過了一項檢查
長話短說:包含機制被單獨評估,並將結果傳回包含它的記錄的評估。如果沒有機制匹配,記錄評估就會失敗。由於您以 結束範例+all
,因此它將始終匹配並因此通過。
答案3
-all
在處理任何包含之後,將解釋末尾的。
其目的是傳達如何處理未透過列出的資源發送的電子郵件。
-all
意味著將它們視為偽造品而放棄,而~all
意味著它們可能仍然是合法的,並且應該更加懷疑地對待。