Defaults.Exposed

Defaults.Exposed修復Guides

SPF PermError:如何在不弄壞郵件的前提下修復"DNS 查詢次數過多"(2026)

發布於 2026-07-08

資料截至 2026-06-29 · 方法論 v7。 基於 261 百萬個已評分網域的彙總普查資料。參見我們如何評分

根據 Defaults.Exposed 對 261,086,232 個網域的普查——出自 139 百萬個 SPF 發布者——至少有 797,263 個網域超出了 SPF 10 次 DNS 查詢的上限。超過十次,接收方就會停止解析並返回 PermError:你的 SPF 作廢,而 DMARC 會把 PermError 算作一次失敗。

修法有嚴格的順序,而大多數指南都搞反了。先數清你真實的、已解析的查詢次數;刪除失效和不再使用的 include——光這一步就能修好大多數記錄;把大宗發信方移到有自己 SPF 預算的子網域上;只在萬不得已時才做扁平化,而且只用會自動重新扁平化的方式,因為静態扁平化會腐化,並且會悄无聲息地破壞送達率。

“SPF PermError:DNS 查詢次數過多”是什麼意思?

RFC 7208 §4.6.4 把每次 SPF 檢查的上限定為 10 次 DNS 查詢。超過十次,接收方就會停止解析,返回 PermError——整條記錄都會被當作損壞處理,而不只是超出預算的那部分。同一節裡還有一個不太為人所知的第二道上限:最多允許 2 次“空查詢”(返回无結果或 NXDOMAIN 的查詢),所以哪怕只是几個指向已停用服務的失效 include: 條目,單靠它們自己就足以讓你的 SPF 作廢。

後果比“沒有 SPF”還要糟:DMARC 把 PermError 當作 SPF 失敗處理,所以一個自己弄壞了 SPF 的網域,在每一次 DMARC 評估裡 SPF 這條腿都是未驗證的。如果 DKIM 沒配好,或者在傳輸途中出了問題,這些郵件就會彻底 DMARC 失敗。

有一個普查數字最能說明這種失敗方式有多殘酷:有 112,215 個網域發布了嚴格的 -all 記錄,却因為查詢次數超標而作廢——這是在總共發布 -all 的 54,655,923 個網域裡統計出來的。它們的所有者已經做對了最難的那部分——選擇了嚴格的結尾——結果多加了一個 include,就把整條記錄關掉了。它們看起來很嚴格;實際上是壞的。完整資料見 SPF PermError 報告

為什麼我什麼都沒改,SPF 却壞了?

因為這個預算大部分是被別人的記錄花掉的。每一個 include: 都是遞歸求值的,它內部的每一個查詢機制都會算進你的十次配額裡。DNS 面板裡的一行,解析開之後可能要花掉四五次查詢。某個服務商在裡面又嵌套了一個 include,你的 SPF 就死了,而你的區域文件裡連一個字都沒改過。

大平台不是問題所在:Google 和 Microsoft 都已經把自己的 SPF 扁平化了——_spf.google.comspf.protection.outlook.com 展開後就是純 IP 列表,內部查詢成本為(對照實時 DNS 核實,2026 年 7 月)。真正的爆表往往來自主機面板裡嵌套了好几層的 include 鏈,以及誠實的 SaaS 堆叠——郵箱加通讯工具加 CRM 加工單系統,每個都“只是一個 include”。沒有人是故意加上第十一次查詢的;它是一系列合理決定累加出來的結果。這就是為什麼懸崖邊上挤滿了網域:有 2,119,539 個網域正好處在 9–10 次已解析查詢——大約每 66 個 SPF 發布者裡就有 1 個,今天還沒事,哪天有人再粘贴進一個 include 就作廢了。SPF 記錄的第 99 百分位已經解析到 9 次查詢。如果你的技术栈以 SaaS 為主,SPF 在 SaaS 工具上失敗的指南 覆蓋了按服務商拆解的版本。

SPF 記錄裡哪些部分算作 DNS 查詢?

機制查詢成本備注
include:1 次 + 其內部的一切,遞歸計算几乎所有爆表都源自這裡
a每個 1 次即便是你自己網域的裸 a 也算
mx每個 1 次(外加 MX 主機的 A 記錄查詢)經常被忽略
ptr1 次——而且自 2014 年起已被棄用不管怎樣都該刪掉
exists:每個 1 次少見
redirect=1 次 + 目標記錄的內容計算方式和 include 一樣
ip4: / ip6:0這正是扁平化管用的原因
-all / ~all / ?all0限定符本身不計費

數的是解析後的總數,不是看得見的行數。四個 include 可能是四次查詢,也可能是十四次。

怎麼在不弄壞郵件的前提下修復“DNS 查詢次數過多”?

  1. 動 DNS 之前,先執行免費掃描 它會解析你完整的 include 鏈,顯示你真實的查詢次數,讓你修的是真正的問題——而不是面板裡看起來的那個樣子。(如果它說你根本沒有 SPF,那是另一種失敗——見 “SPF 記錄未找到”。)
  2. 先刪除失效和不再使用的 include。 2023 年就不用了的工具、遷移後殘留的舊主機 include、重復項、任何 ptr 機制。失效的 include 有双重毒性:既消耗查詢預算,又是空查詢最常見的來源。大多數超標記錄光靠這一步就能重新回到 10 次以下。如果你的記錄裡還帶著上一個服務商的機制,參照遷移清理指南
  3. 檢查剩下的每個 include 是否還有作用。 接收方是對照 Return-Path(RFC5321.MailFrom)網域,而不是 From 標头來評估 SPF 的——而很多 SaaS 工具會把它們自己的退信網域放在 Return-Path 上,所以你記錄裡它們的 include 除了消耗預算之外什麼作用都沒有。只為那些真正用你的網域做 Return-Path 的服務保留 include;其余的改用服務商的自定義網域 DKIM。
  4. 把大宗發信方移到子網域。 通讯郵件用 news.yourdomain.com,事務性郵件用 mail.yourdomain.com。每個子網域都有自己獨立的 SPF 記錄和全新的 10 次查詢預算,某一條流裡的問題也不會波及其他流。
  5. 只有到這一步才考慮扁平化——而且只做自動化的扁平化。 見下文。
  6. 重新掃描以確認你稳稳低於 10 次——目標是留有余量,而不是剛好卡在 10 上,否則你又重新加入了懸崖邊上那 2.1 百萬個網域的行列。然後處理修復 SPF 頁面標出的其他問題。

我該不該扁平化我的 SPF 記錄?

扁平化就是把 include 替換成它們底層的 ip4:/ip6: 網段,查詢成本為零。這確實管用——但如果是手動做的,就是一場延遲發作的送達率事故。

做法查詢次數隨時間推移
精簡 + 子網域(第 2–4 步)通常能回到 10 次以下稳定;服務商自己管理自己的 IP
自動化扁平化(服務或定時任務會重新解析並 republish)接近 0能跟上服務商的 IP 變化;安全
一次性手動扁平化接近 0——但只是今天會悄悄腐化:服務商會轮換 IP,合法郵件開始 SPF 失敗,而你這邊不會有任何報錯

服務商會定期轮換發信 IP,而且從不通知任何人。一份静態 IP 列表在你粘贴進去的那一天是對的,几個月內會悄悄變錯——而因為這種失敗表現為別人收不到你的郵件,你往往很晚才會發現。如果精簡和子網域已經能讓你回到上限以下,就到此為止;永遠不要把第三方的 IP 網段手動抄進你的記錄當作永久解決方案。

常見問題

SPF PermError 是不是意味著我的郵件會立刻停止送達? 不會立刻——這正是它危險的地方。DMARC 把 PermError 算作 SPF 失敗,所以送達完全依賴 DKIM;如果 DKIM 缺失或在傳輸中出問題,你就是在 DMARC 失敗。在我們普查的 139 百萬個 SPF 發布者中(截至 2026-06-29),至少有 797,263 個處於這種狀態——大多數人對此一无所知。

我的記錄只有四個 include——怎麼會超過 10 次查詢? Include 是遞歸計數的:每個 include 內部(以及它自己的 include 內部)的一切都算進你的預算,所以四行看得見的記錄,解析出來可能是十四次查詢。要用能遞歸解析的工具來數,不能靠肉眼——正是靠解析這些鏈條,我們的 PermError 報告 才發現了比表面數字多出約 100 倍的損壞網域。

我的記錄以 -all 結尾——那我肯定是受保護的吧? 只有在記錄能正常求值的前提下才是。我們的普查(截至 2026-06-29)發現有 112,215 個網域的嚴格 -all 記錄因為查詢超標而作廢。一個 PermError 記錄上的嚴格限定符起不到任何保護作用。

10 次查詢的上限是針對每個 include,還是針對整條記錄? 是針對整次評估:RFC 7208 §4.6.4 把完整檢查的上限定為 10 次,外加最多 2 次空查詢。每個子網域都有自己獨立的記錄和預算——這也是第 4 步管用的原因。

ip4 和 ip6 條目算進上限嗎? 不算——IP 機制不花任何查詢成本,這正是扁平化能降低查詢次數的原因。

把報告發給老板

如果你是在替客戶或雇主修這個問題,用證據來收尾。改動生效後重新執行免費掃描,把評分報告轉發給企業負責人:語言直白、帶日期、PermError 已消失。這是他們在網路保險續保和下一份客戶安全問卷時需要的凭證——“我改了几條 DNS 記錄”和一份記錄在案的前後對比,區別就在這裡。

免費檢查你的網域

私密、僅網域所有者可見地看看你真實的、已解析的查詢次數——以及 SPF、DKIM 和 DMARC 的其他一切。

檢查你的網域 → · 修復 SPF → · SPF 在 SaaS 工具上失敗 → · 在 GoDaddy 上設定 SPF → · 我們如何評分 → · 僅使用彙總資料。資料在歐盟境內儲存和處理。