Tab & Tap
繁體中文

指南

DMARC 檢查:逐一解讀 DMARC 記錄的標籤

DMARC 告訴收件郵件伺服器,該如何處理那些聲稱來自你的網域、卻沒有通過 SPF 和 DKIM 的郵件。記錄設錯,偽冒郵件就會送達收件匣,或是你自己的郵件被丟進垃圾郵件。以下說明怎麼檢查。

DMARC 記錄放在哪裡

DMARC 是一筆 TXT 記錄,位在網域前面加上 _dmarc. 的名稱。以 example.com 為例,要查詢 _dmarc.example.com 的 TXT 記錄:

_dmarc.example.com.  TXT  "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com; pct=100"

這種記錄必須剛好只有一筆。有兩筆 DMARC 記錄時,收件端會兩筆都忽略。

重要的標籤

標籤意義範例
v版本。必須放在最前面,值必須是 DMARC1。v=DMARC1
p網域政策:none(只回報)、quarantine(視為可疑,通常進垃圾郵件匣)或 reject(拒收郵件)。p=reject
sp子網域政策。預設與 p 相同。sp=quarantine
pct未通過驗證的郵件中套用政策的比例,0–100。預設為 100。pct=25
rua彙總報告的寄送地址。rua=mailto:dmarc@example.com
ruf失敗報告的寄送地址。許多郵件服務商不會寄送。ruf=mailto:forensic@example.com
adkim, aspfDKIM 和 SPF 的對齊模式:r 寬鬆(子網域也算相符,預設)或 s 嚴格。adkim=s

p=none、quarantine 還是 reject?

  • p=none 什麼都不保護,收件端只會寄報告。先用幾週,看看有誰以你的網域名義寄信。
  • p=quarantine 會把未通過驗證的郵件送進垃圾郵件匣。等你所有的服務都通過後,這是安全的下一步。
  • p=reject 完全擋下偽冒郵件,是大多數網域的目標。

設定 p=none 又沒有 rua 的記錄,既沒有保護也收不到報告,等於完全沒作用。

DMARC 如何判定:對齊

當 SPF 或 DKIM 通過,而且所檢查的網域與 From 標頭中的網域相符時,郵件就通過 DMARC。SPF 檢查信封寄件者(Return-Path);DKIM 檢查簽章中的 d= 網域。用自己網域簽章的電子報服務能通過 DKIM,但在你於該服務為自己的網域設定 DKIM 之前,DMARC 對齊都不會通過。

常見錯誤

  • 記錄放在網域本身,而不是 _dmarc.
  • 有兩筆 DMARC 記錄,或把 DMARC 寫進 SPF 記錄裡。
  • 測試後 pct 仍低於 100,導致大部分偽冒郵件依然送達。
  • 在所有寄信服務(CRM、客服系統、電子報)都以對齊方式通過 SPF 或 DKIM 之前,就改成 p=reject。
  • 報告寄到其他網域的地址,但該網域沒有授權記錄。

也要檢查 SPF 和 DKIM

DMARC 依賴另外兩者。SPF 記錄的 DNS 查詢次數(包含巢狀的 include)不能超過 10 次,否則會產生永久錯誤(permerror)。DKIM 金鑰位在選擇器名稱之下(例如 google._domainkey),而 DNS 無法列出所有選擇器,所以你需要知道郵件服務商使用的選擇器。

資料來源