Skip to content

DMARC是什麼?設定步驟、政策收緊與報告判讀

Posted in :

jc-seo

DMARC 是寫在網域 DNS 裡的一筆 TXT 紀錄,用來告訴收件伺服器:一封信的 SPF 與 DKIM 沒有任何一項是既通過驗證、網域又和寄件者網域相符時,該照常收下、放進垃圾郵件還是拒收,並請收件端定期寄回驗證報告。設定順序是先完成 SPF 與 DKIM,再新增 _dmarc 紀錄;政策從只監控的 none 開始,看過報告、確認所有正當的寄信服務都通過後,再逐步收緊到 quarantine 與 reject。

DMARC 是什麼:替寄件網域訂下驗證失敗的處理規則

DMARC 是一種電子郵件認證方法,補的是 SPF 和 DKIM 留下的缺口:這兩項驗證本身並不要求通過驗證的網域,和收件者在郵件程式裡看到的 From 寄件地址一致。換句話說,有人可以用自己的網域通過 SPF,卻在寄件者欄位顯示你的公司網域。DMARC 在這兩項驗證之上加了三件事:

  • 對齊檢查:通過驗證的網域,要和 From 地址的網域相符。
  • 處理政策:沒通過時,收件端可以依你指定的政策處理。
  • 報告:收件端把以你的網域寄出的郵件驗證結果彙整後寄回。

Gmail 寄件者規範也要求大量寄件者設定 DMARC,政策可以先設為 none;哪些寄件者算大量寄件者,可參考公司信寄 Gmail 被擋的排查方式。

SPF、DKIM、DMARC 怎麼分工:對齊才算通過

三者常被一起提起,但各自檢查的對象不同:

機制 檢查內容 DMARC 比對的網域
SPF 寄信伺服器是否在網域授權的清單內 信封寄件者(MAIL FROM)的網域
DKIM 郵件簽章能否用 DNS 上的公鑰驗證 DKIM-Signature 標頭的 d= 網域
DMARC 前兩項是否有一項通過且與寄件者網域對齊 From 地址的網域

判斷規則是:SPF 或 DKIM 只要有一項通過且對齊,郵件就通過 DMARC;兩項都沒通過才算失敗。對齊分成寬鬆與嚴格兩種模式,寬鬆模式允許子網域相符,是預設值;嚴格模式要求網域完全相同。Google 的說明指出寬鬆對齊通常已足以防範偽冒,嚴格對齊則可能讓相關子網域寄出的郵件被拒收或送進垃圾郵件。DKIM 金鑰的產生與發布方式,另見DKIM 設定步驟。

設定前先盤點所有代你寄信的服務

DMARC 收緊之後,任何沒通過對齊驗證的寄信來源都會受影響,所以設定前要先列出所有會用公司網域寄信的系統:

  • 公司信箱,例如 Google Workspace 或微軟的郵件服務。
  • 電子報或行銷寄信平台。
  • 官網的表單通知、會員註冊與訂單通知信。
  • 客服、CRM 或電子發票等會自動寄信的系統。

Google 的設定說明提醒,第三方服務代表你的組織寄出的郵件也必須通過 SPF 與 DKIM,要向每家服務確認是否支援用你的網域簽署 DKIM,並把它的寄信伺服器加入 SPF。Google 也建議建立群組或專用信箱接收報告;報告信箱若在其他網域,該網域也要新增一筆授權的 DNS 紀錄。

DMARC 設定步驟:在 DNS 新增 _dmarc 紀錄

  1. 確認 SPF 或 DKIM 已經運作,Google 建議設定後至少等四十八小時再加 DMARC。
  2. 登入目前負責網域 DNS 的代管商,打開管理 TXT 紀錄的頁面。
  3. 新增一筆 TXT 紀錄,名稱填 _dmarc。部分代管商會自動補上網域名稱,存檔後要檢查名稱是否變成重複的網域。
  4. 值先填只監控的政策,例如 v=DMARC1; p=none; rua=mailto:dmarc@example.com,並把信箱換成你的報告信箱。
  5. 存檔。同一個網域只保留一筆 _dmarc 紀錄;有多個網域時,每個網域各自設定。
  6. 用 Google Admin Toolbox 等查詢工具確認紀錄可以被正確讀取。

紀錄標籤怎麼填:p、rua、pct 與對齊模式

標籤 用途 填寫重點
v 版本,必填 固定填 DMARC1
p 處理政策,必填 none、quarantine 或 reject
rua 彙總報告的收件地址 信箱前要加 mailto:
pct 套用政策的郵件比例 未填時套用到全部未通過的郵件;新版 DMARC 標準已移除這個標籤,收件端是否依比例套用以各家說明為準
sp 子網域的政策 未另外設定時,子網域沿用主網域的設定
adkim、aspf DKIM 與 SPF 的對齊模式 r 為寬鬆(預設),s 為嚴格
ruf 失敗報告的收件地址 Gmail 不支援,微軟的郵件服務也不寄送

三種政策的意思依微軟的說明:none 表示沒有建議的處理動作,quarantine 表示郵件可以收下但要加以標記,reject 表示郵件應該被拒收。

從 none 收緊到 reject 的順序

Google 建議的導入順序如下:

  1. 先用 none 監控,Google 指出約一週通常足以從每日報告看出網域的郵件流向。
  2. 每天檢查報告,修正正當寄信來源的驗證問題,確認沒有問題後再進入下一階段。
  3. 改成 quarantine,並用 pct 從小比例開始,起始比例依組織規模決定,再逐步提高到全部郵件。
  4. 需要時再改成 reject。未通過的郵件會直接被拒收,要在充分監控後才使用。

微軟另外建議子網域逐一處理,主網域等子網域都完成後再收緊。完全不寄信的停放網域,可以直接設定 reject。有些網域檢測工具在政策還是 none 時,會顯示 DMARC policy not enabled 之類的提醒,意思是網域尚未啟用防偽冒的政策;看到這個訊息不必急著改成 reject,先確認報告裡所有正當來源都已通過。

彙總報告怎麼看:逐一確認寄件來源

彙總報告通常每天以電子郵件寄一次,內容是 XML 格式,附件可能經過 GZIP 壓縮。每筆紀錄會列出寄件來源 IP、該來源在報告期間寄出的郵件數、SPF 與 DKIM 及 DMARC 的驗證結果,以及收件端對未通過郵件的處理方式。判讀時可以照這個順序:

  • 把每個來源 IP 對應到你盤點過的寄信服務。
  • 已知的服務若未通過,回頭修正它的 SPF 或 DKIM 設定。
  • 不認得的來源若持續未通過,可能是有人冒用你的網域寄信,政策收緊後就會被處理。

微軟建議導入初期每週檢視一次,穩定後改為每月。報告量大時,Google 建議交給第三方 DMARC 服務彙整分析。

常見問題

只設定 DMARC、不設定 SPF 和 DKIM 可以嗎?

不行。Google 的說明指出,網域要先啟用 SPF 或 DKIM 才能使用 DMARC,因為 DMARC 是依這兩項的驗證結果與對齊情況判斷,沒有它們就沒有結果可以比對。

DMARC 設成 reject 會影響正常寄信嗎?

如果還有正當的寄信服務沒通過對齊驗證,這些信會被收件端拒收。所以要先用報告確認每個寄件來源都通過,再逐步提高政策強度。

一個網域可以有兩筆 DMARC 紀錄嗎?

不行。依 DMARC 規範,同一網域查到多筆紀錄時,收件端會停止讀取政策、不套用 DMARC;微軟的疑難排解說明也要求只保留一筆 _dmarc 紀錄。要調整政策或報告信箱時,直接修改原本那一筆。

子網域需要另外設定 DMARC 嗎?

子網域會沿用主網域的設定,也可以用 sp 標籤指定子網域政策,或替子網域另外建立紀錄覆蓋。

設定後一直沒收到 DMARC 報告怎麼辦?

先確認 rua 有加 mailto: 而且信箱能正常收信;報告信箱在其他網域時,該網域要加授權紀錄。報告由收到你郵件的伺服器寄出,通常一天一次,剛設定時要等收件端的報告週期。

本文由京采數位科技整理。我們自 2005 年起提供官網設計、系統開發與 Google SEO 服務,實際案例可見成果與案例。

想直接討論你自己的網站狀況,或需要一份初步的搜尋機會評估?

相關主題

下一步

先把公司所有會用網域寄信的服務列成清單,再從 none 政策開始收報告。京采的技術 SEO 與網站健檢服務可以協助檢查網域 DNS 中的 SPF、DKIM 與 DMARC 紀錄,核對官網表單與會員信的寄件設定,並陪你判讀報告、規劃政策收緊的節奏;需要協助時歡迎與我們聯絡。