使用步驟
- 輸入網域,或直接貼上電子郵件地址(會自動取 @ 後面的網域)。
- 點「查詢」,檢視 MX、SPF、DKIM、DMARC 的結果;DKIM 查不到時可以填寫選擇器再查。
- 按提示到網域的 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 地址和請求地址,僅用於防止濫用。