SPF / DKIM / DMARC 一次配齊:不再進垃圾箱
郵件進垃圾箱的根因多是認證三件套缺失。SPF/DKIM/DMARC 各自證明什麼、記錄怎麼寫、按什麼節奏上線(none→quarantine→reject),一條 dig 命令鏈驗證到位。
「企業郵箱發出去的信全進垃圾箱」——外貿團隊與 SaaS 團隊的頭號郵件事故,根因九成是認證三件套(SPF/DKIM/DMARC)沒配齊。這三條 DNS 記錄是收件方(Gmail/Outlook/QQ 郵箱)判斷「這封信是不是你域發的」的唯一依據。本篇是域名與 DNS 中心的郵件認證實操篇:每條記錄證明什麼、怎麼寫、按什麼節奏上線。
三件套各證明什麼
| 機制 | 證明的事 | 載體 | 缺失後果 |
|---|---|---|---|
| SPF | 「這個發信 IP 是我授權的」 | TXT 記錄(v=spf1 …) | 收件方無法驗證來源 IP,信譽歸零起步 |
| DKIM | 「這封信的內容沒被篡改,私鑰在我手裏」 | TXT 記錄(selector._domainkey) | 無內容籤名,轉發鏈路中任何改動都不可辨 |
| DMARC | 「SPF/DKIM 不過時,收件方該怎麼處置」 | TXT 記錄(_dmarc) | 前兩者只是「建議」,DMARC 才是「政策」 |
三者是遞進關系:SPF 管 IP、DKIM 管內容、DMARC 管策略與對齊(發信域與認證域一致才算過)。只配 SPF 是十年前的水位;2024 年後主流郵箱對批量發信人的要求已是「SPF+DKIM 必過 + DMARC 至少存在」(各收件方的具體政策以其官方公告爲準)。
記錄怎麼寫(可直接改域名套用)
# ① SPF:列出所有合法發信源(企業郵箱服務商的 include 值以其文檔爲準)
你的域名. TXT "v=spf1 include:郵箱服務商域名 ~all"
# 多個來源合並進一條(SPF 只允許一條):
# "v=spf1 include:a.com include:b.com ip4:你的服務器IP ~all"
# ② DKIM:郵箱服務商後臺生成密鑰對,公鑰按它給的值發布
selector._domainkey.你的域名. TXT "v=DKIM1; k=rsa; p=MIGfMA0G..."
# ③ DMARC:從觀察模式起步(見下方上線節奏)
_dmarc.你的域名. TXT "v=DMARC1; p=none; rua=mailto:dmarc@你的域名"
寫法要點:SPF 的 ~all(軟失敗)起步,穩定後再收緊 -all(硬失敗);DKIM 的 selector 由服務商指定,別自己發明;DMARC 的 rua 郵箱必須真實可收——它是你觀察認證失敗報告的收件箱,沒人看的 rua 等於沒配。
上線節奏:none → quarantine → reject(每檔觀察一周)
- 第 1 周 p=none:只收報告不幹預——從 rua 報告裏看清「誰在用你的域發信」:合法服務(郵箱、營銷平臺、事務郵件)逐個補進 SPF/DKIM,非法來源記錄在案;
- 第 2 周 p=quarantine;pct=25:對未通過認證的信開始進垃圾箱處置,從 25% 起步,誤傷可控;報告幹淨後逐周抬 pct(50 → 100);
- 第 3–4 周 p=reject:全量拒絕未認證郵件——這是防僞冒(釣魚/仿冒域)的滿水位,也是主流收件方眼中的「認真發信人」標志。
驗證命令鏈(配完立即跑)
# ① 三條記錄逐條 dig 核對(值與面板一致、無多餘引號/斷行)
dig +short TXT 你的域名 | grep spf
dig +short TXT selector._domainkey.你的域名
dig +short TXT _dmarc.你的域名
# ② 實戰驗證:給自己發一封測試信,看信頭認證結果
# (Gmail: 顯示原始郵件;找這三行)
# Authentication-Results: spf=pass dkim=pass dmarc=pass
# ③ 常見翻車:spf=fail → IP 沒進 SPF;dkim=none → selector 沒發布或發信端沒籤名;
# dmarc=fail 但前兩者 pass → 對齊問題(發信 From 域與認證域不一致)
配套動作:IP 信譽與 DNSSEC
- 發信 IP 與建站 IP 分開:同一 IP 既跑網站又發郵件,被攻擊/進黑名單時雙雙遭殃——多 IP 段的把發信 IP 獨立(段的規劃見選型中心);
- PTR(反向解析):發信 IP 的反向解析應指向發信域名——多數機房面板可設,設不了的問工單;
- 黑名單自查:發信 IP 入庫前過一遍主流黑名單庫(Spamhaus 等),每月復查一次;
- DNSSEC:給你的域開啓 DNSSEC(註冊商面板一鍵功能居多),防 DNS 層劫持與污染——郵件認證建立在「DNS 應答可信」之上,DNSSEC 是它的地基(部署後用
dig +dnssec +short TXT _dmarc.你的域名驗證籤名)。
事務郵件與營銷郵件:分開是紀律
郵件發信量上來之後的第二課:事務郵件(註冊驗證、密碼重置、訂單通知——到達率是生命線)與營銷郵件(EDM、促銷——退訂與投訴率天然偏高)必須分域或分子域發送。理由在信譽機制:收件方按「發信域 + IP」記信譽賬,營銷信的投訴會連坐同域的事務信——爲了促銷郵件把密碼重置信送進垃圾箱,是 email 架構最冤的事故。標準做法:事務走主域(noreply@你的域名),營銷走子域(news.你的域名或 mail.你的域名),各自獨立的 SPF/DKIM/DMARC 記錄與獨立 IP 池;子域信譽崩了可以棄用重建,主域毫發無傷。發信平臺(第三方 ESP)的 include 與 DKIM 託管記錄照其文檔逐條發布,發布後用本篇驗證鏈全量核對一遍——「平臺說配好了」不等於「dig 得到」。
進了垃圾箱的排查順序
按命中率排序:①看信頭——Authentication-Results 哪一項 fail/none,直接定位缺哪條記錄;②查 rua 報告——DMARC 聚合報告會告訴你所有認證失敗的來源;③查 IP 信譽——黑名單與 PTR;④查內容——短鏈接、敏感詞、圖文比例(內容側的規則各家黑箱,只能逐項排除)。九成案例止步於第①步——三件套配齊,垃圾箱問題自動消失一半。
下一步:今天就把三條記錄配上(p=none 起步零風險),下周開始抬 DMARC 水位。域名與解析服務 → 域名與 DNS 中心;發信服務器與多 IP → 在售配置。