DMARC是什麼?設定步驟、政策收緊與報告判讀
Posted in :
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 紀錄
- 確認 SPF 或 DKIM 已經運作,Google 建議設定後至少等四十八小時再加 DMARC。
- 登入目前負責網域 DNS 的代管商,打開管理 TXT 紀錄的頁面。
- 新增一筆 TXT 紀錄,名稱填 _dmarc。部分代管商會自動補上網域名稱,存檔後要檢查名稱是否變成重複的網域。
- 值先填只監控的政策,例如 v=DMARC1; p=none; rua=mailto:dmarc@example.com,並把信箱換成你的報告信箱。
- 存檔。同一個網域只保留一筆 _dmarc 紀錄;有多個網域時,每個網域各自設定。
- 用 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 建議的導入順序如下:
- 先用 none 監控,Google 指出約一週通常足以從每日報告看出網域的郵件流向。
- 每天檢查報告,修正正當寄信來源的驗證問題,確認沒有問題後再進入下一階段。
- 改成 quarantine,並用 pct 從小比例開始,起始比例依組織規模決定,再逐步提高到全部郵件。
- 需要時再改成 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 紀錄,核對官網表單與會員信的寄件設定,並陪你判讀報告、規劃政策收緊的節奏;需要協助時歡迎與我們聯絡。

