跳到正文
馬克工具箱

電子郵件網域檢測(MX / SPF / DKIM / DMARC)

輸入網域或電子郵件地址,一次查出 MX 收信伺服器、SPF、DKIM 和 DMARC 記錄,並檢查常見錯誤。企業電子郵件發信進垃圾箱、被冒用發信,或者要滿足 Gmail、Yahoo 對發信方的要求時,先用它看一下配置。

在伺服器上處理,處理完不儲存

不填時自動嘗試 default、selector1、google 等常見選擇器

使用步驟

  1. 輸入網域,或直接貼上電子郵件地址(會自動取 @ 後面的網域)。
  2. 點「查詢」,檢視 MX、SPF、DKIM、DMARC 的結果;DKIM 查不到時可以填寫選擇器再查。
  3. 按提示到網域的 DNS 解析裡修改記錄,生效後再查一次。

引數說明

SPF
網域根下以 v=spf1 開頭的 TXT 記錄,列出允許用這個網域發信的伺服器。只能有一條。
DMARC
_dmarc 子網域下以 v=DMARC1 開頭的 TXT 記錄,告訴收件方 SPF、DKIM 校驗不通過時怎麼處理。
查詢次數
SPF 裡的 include、a、mx、ptr、exists 和 redirect 每個都要額外查一次 DNS,總數不能超過 10。這裡會逐層展開 include 和 redirect,把巢狀的查詢一起算上。

怎麼看這些記錄

SPF 記錄是一串條目。每個條目前面可以帶一個限定符,說明命中時怎麼處理(RFC 7208):

限定符 含義 示例
+(預設) 通過 a 或 +a
- 失敗:拒絕 -all
~ 軟失敗:接收但做標記 ~all
? 中立:不作表態 ?all

檢測器會把 +all(或單獨的 all)報為允許所有伺服器發信,把 ?all 報為對防偽造不起任何作用,把沒有 all 或 redirect= 的記錄報為未完成。對 ptr 機制和第二條 SPF 記錄也會給出警告。

DMARC 記錄是一組用分號隔開的 tag=value(RFC 7489):

v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com; adkim=s; pct=100
標籤 含義
v 版本,始終是 DMARC1,並且位於記錄最前面
p 對該網域的策略:none、quarantine 或 reject
sp 對子網域的策略;沒有時沿用 p
rua 聚合報告發到哪裡
ruf 失敗報告發到哪裡
pct 策略適用於多大比例的校驗失敗郵件;沒有時為 100
adkim、aspf DKIM 和 SPF 對齊方式:r 寬鬆(預設)或 s 嚴格
fo 失敗報告選項;沒有時為 0

沒有 rua 的 DMARC 記錄會被標出,因為這樣你收不到任何報告。DKIM 方面,短於 2048 位的 RSA 金鑰會被標為強度不足,p= 的值為空的金鑰會顯示為「已撤銷」。

常見問題

SPF 用 ~all 還是 -all?

-all 表示不在列表裡的伺服器一律拒絕,~all 表示標記為可疑。確認列表完整之前用 ~all 更穩妥;配合 DMARC 使用時,兩者效果差別不大。

DMARC 應該從哪個策略開始?

先用 p=none 並設定 rua 收報告,觀察一兩週確認合法的發信來源都通過校驗,再改成 quarantine,最後改成 reject。

為什麼查不到 DKIM?

DKIM 記錄放在「選擇器._domainkey.網域」下,選擇器由郵件服務商決定。這裡會自動嘗試 default、selector1、selector2、google 等常見選擇器;查不到時,在郵件原文的 DKIM-Signature 頭裡找到 s= 後面的值,填到「DKIM 選擇器」裡再查。

改了記錄多久生效?

取決於記錄的 TTL,一般幾分鐘到幾小時。這裡預設用阿里公共 DNS 查詢,結果可能被快取一段時間。

隱私說明

這個工具需要伺服器完成:你輸入的內容或檔案通過 HTTPS 傳送到我們的伺服器,處理完立即丟棄,不做儲存。伺服器訪問日誌會記錄 IP 地址和請求地址,僅用於防止濫用。

相關工具