Defaults.Exposed

Defaults.Exposed修復Guides

DMARC 失敗但 SPF 和 DKIM 都通過?對齊修復指南(2026)

發布於 2026-07-08

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

DMARC 要的不只是”通過”——通過 SPF 或 DKIM 的那個網域必須與你的 From 網域匹配。大多數 “SPF 通過、DMARC 失敗” 的郵件,是在供應商的退信網域上通過了 SPF,不是在你的網域上。根據 Defaults.Exposed 普查(2026-06-29),在 261,086,232 個已評分網域中,只有 7.4% 在強制執行的 DMARC 政策下以對齊方式通過 SPF。

修復比這團困惑看上去要快。讀一讀 Authentication-Results 標头,看是哪條腿——SPF 還是 DKIM——在錯誤的網域上通過;然後要麼開啟發送服務的自定義網域 DKIM 簽名(通常就是几條 CNAME,而且是能挺過轉發的修復),要麼設定它的自定義回信路径讓 SPF 在你的網域上通過。DMARC 只需要一條對齊的腿。

SPF 和 DKIM 都通過,DMARC 怎麼還會失敗?

因為 DMARC 從來不問”SPF 通過了嗎?“它問的是:SPF 或 DKIM 是否為一個與收件人看到的 From 位址匹配的網域通過了?這個附加條件叫對齊,也是 DMARC 的全部意義——沒有它,任何人都可以在自己擁有的網域上通過 SPF,同時在 From 標头裡顯示你的網域。

每項檢查驗證的是不同的網域:

檢查它實際評估的網域在哪裡看
SPFReturn-Path(RFC5321.MailFrom,即退信/信封發件位址)——不是 From 標头Authentication-Results 裡的 smtp.mailfrom=
DKIM簽名 d= 標簽裡的網域——簽名方選什麼就是什麼Authentication-Results 裡的 header.d=
DMARC你 From 標头裡的網域——並且要求 SPF 的網域 DKIM 的 d= 與之匹配Authentication-Results 裡的 header.from=

各個环節通常是這樣出錯的:你的郵件通讯平台或 CRM 用類似 [email protected] 的 Return-Path 發信,SPF 是對 vendor.com 檢查的且通過了,DKIM 以 d=vendor.com 通過了——而 DMARC 失敗,因為兩個通過的網域都不匹配 yourcompany.com。每項檢查都說了實話;但沒有一項驗證的是。改你自己的 SPF 記錄救不了這個——它根本沒被查詢過。這和 SaaS 工具的 SPF 失敗裡讲的是同一個陷阱。

普查資料顯示走完這最後一步的發件方有多稀少:261,086,232 個已評分網域中只有 27,640,987 個(10.59%)有強制執行的 DMARC 政策,而在強制政策下以對齊方式通過 SPF 的只有 7.4%。在 SPF 以軟失敗(~all)結尾的 77.5 百萬個網域中,只有 9.2% 處於強制執行的 DMARC 政策之下;在硬失敗(-all)發布者中,12,142,351 個被強制執行,42,514,532 個沒有。大多數網域止步於 “SPF 通過”——而沒有 DMARC 落實它,這几乎保護不了什麼

如何讀 Authentication-Results,看出哪條腿沒對齊?

通過出問題的服務給自己發一封郵件,打開原始源碼,找到 Authentication-Results 標头。典型的未對齊結果長這樣:

Authentication-Results: mx.google.com;
       spf=pass smtp.mailfrom=bounces.espmail.net;
       dkim=pass header.d=espmail.net;
       dmarc=fail (p=NONE) header.from=yourcompany.com

按三個對比來讀:

哪條腿已經涉及你自己的網域(或能被改成涉及),就修哪條。你只需要一條

寬松對齊和嚴格對齊有什麼區別?

DMARC 提供兩種匹配模式,由 DMARC 記錄裡的 aspf(SPF)和 adkim(DKIM)標簽設定:

如果你的記錄沒提到 aspfadkim,你就處於寬松模式——而且你几乎肯定應該留在那裡。對大多數發件方而言,嚴格模式不帶來任何有意義的安全增益,却會悄无聲息地弄壞你設定的每一個合法子網域發送源。如果 DMARC 在失敗而你的記錄裡有 aspf=sadkim=s,光這一點就可能是病根。

DMARC 對齊怎麼修?

  1. 動 DNS 之前,先在 defaults.exposed 執行免費掃描。 它會顯示你的 DMARC 記錄和政策、你的 SPF 和 DKIM 是否設定成可對齊,以及還有什麼壞掉了——這樣你先修對的那條腿。
  2. 測試每個發送服務並讀取它的 Authentication-Results(如上)。列出所有來源——郵箱服務商、郵件通讯工具、CRM、開票應用——並逐個記下 smtp.mailfromheader.d 是你的網域還是供應商的。
  3. 給每個供應商啟用自定義網域 DKIM 簽名——能長久的修復。 每個正經的發送服務都提供”網域驗證”:几條 CNAME 記錄,讓它以 d=yourcompany.com(或某個子網域,在寬松模式下同樣對齊)簽名。對齊的 DKIM 通常是更容易的修復,也是唯一能挺過轉發的修復,因為轉發從設計上就會弄壞 SPF
  4. 要對齊 SPF,就啟用供應商的自定義回信路径(常叫自定義退信網域)——通常是一條 CNAME,比如 bounce.yourcompany.com 指向供應商。這樣 SPF 就在你的組織網域上通過並對齊。有這個功能就做,但把它當第二條腿,不是對齊 DKIM 的替代品。
  5. 讓對齊保持寬松模式,除非你有明確且理解透彻的理由需要 aspf=s/adkim=s
  6. 重新掃描確認兩條腿,然後走向強制執行。 p=none 的 DMARC 政策只報告、不拦截;等你的真實發送源都對齊之後,通往一條真正保護你的政策的完整路径在修復 DMARC 頁面,而 IONOS 上的 DMARC 這類服務商教程涵蓋了 DNS 面板裡的具體點法。

我該修 SPF 對齊還是 DKIM 對齊?

每個發送來源需要一條對齊的腿。如果只能做一個,這個選擇毫无懸念:

修復涉及什麼能挺過轉發嗎?
對齊的 DKIM(自定義網域簽名)在供應商”網域驗證”面板裡加几條 CNAME能——簽名隨郵件一起旅行
對齊的 SPF(自定義回信路径/退信網域)一條 CNAME,前提是供應商提供不能——任何轉發方的 IP 都會顶替供應商的

值得知道的特例:Google Workspace 和 Microsoft 365 會默認用它們自己的兜底網域(gappssmtp.comonmicrosoft.com)給你的郵件做 DKIM 簽名——於是 DKIM 顯示 pass 而 DMARC 依然失敗。這是整個問題最常見的具體形態,它有自己的專門指南:DKIM 通過但 DMARC 依然失敗:默認簽名陷阱

常見問題

SPF 和 DKIM 都需要對齊 DMARC 才能通過嗎? 不需要——一條對齊的通過就足夠。最佳實践是兩條都對齊,這樣轉發弄壞 SPF 那條腿時,DKIM 那條腿仍然扛著 DMARC 的通過。在 2026-06-29 普查評分的 261,086,232 個網域中,只有 3.87% 完成了 SPF + DMARC + DKIM 的完整三件套。

我的 ESP 後台說 SPF 和 DKIM 已”驗證”——為什麼 DMARC 還是失敗? “已驗證”通常意味著供應商自己的發送在供應商的網域上通過。除非你完成了他們的自定義網域步驟(DKIM CNAME、自定義回信路径),郵件驗證的身份是供應商,不是你——而 DMARC 對比的是你的 From 網域。

不做對齊,一條嚴格的 -all SPF 記錄夠嗎? 不夠。嚴格限定符只是強化了 SPF 對 Return-Path 網域的判定,但 DMARC 仍然要求那個網域是你的。截至 2026-06-29 普查,發布 -all 的網域中只有 12,142,351 個處於強制執行的 DMARC 政策之下——另外 42,514,532 個的嚴格記錄沒有任何政策在落實。

為了更安全,我該切到嚴格對齊(aspf=s/adkim=s)嗎? 几乎從來不該。寬松對齊已經要求同一個可註冊網域,而冒充者控制不了它。嚴格模式主要的作用是弄壞你自己的子網域發送源——每當對齊莫名其妙地失敗,就查一查它。

DMARC 只在收件人轉發的郵件上失敗——同樣的修法嗎? 那是 SPF 那條腿在傳輸途中死掉了:轉發方的伺服器不在任何人為你的回信路径設定的 SPF 記錄裡。轉發郵件的 SPF 修不了;答案是對齊的 DKIM,因為簽名能完好无損地挺過轉發。详見轉發郵件 SPF 失敗

把報告發給負責人

如果你是在替客戶或雇主修這個問題,用證據來收尾。CNAME 生效後重新執行免費掃描,把評分報告轉發給企業負責人:有日期、說人話、顯示 SPF、DKIM 和 DMARC 已對齊並通過。這正是網路保險續保和下一份供應商安全問卷需要的材料——一套有效設定的證明,而不只是”我加了几條 DNS 記錄”。

檢查你的網域 → · DKIM 通過但 DMARC 依然失敗 → · 修復 DMARC → · 我們如何評分 → · 僅使用彙總資料。資料在歐盟境內儲存和處理。