郵件 DNS 是很多站長最容易頭痛的一塊,因為它不像網站首頁那樣一眼就看得出來有沒有成功。實際上只要知道每筆紀錄在保護什麼、影響什麼,你就比較不會在收信正常卻寄件被拒時完全沒方向。
你如果不想每次都只是照著別人的畫面一步一步跟著按,卻不知道自己到底改了什麼,這篇會比較適合你。重點不是讓你背流程,而是讓你下次遇到類似情況時,還知道該怎麼自己判斷。
你會學到什麼
- 看懂 Email 相關 DNS 紀錄各自的用途。
- 知道新建企業信箱時至少要先補哪些紀錄。
- 了解 Google Workspace 與 Microsoft 365 的設定差異。
- 認識 BIMI 記錄,讓你的品牌 Logo 出現在收件匣。
- 遇到寄信進垃圾桶或驗證失敗時,有基本排查方向。
什麼情況最適合先看這篇
- 正在處理網域、解析、Cloudflare 或郵件紀錄,想一次把觀念和排錯順好的人
- 你現在正要處理「Email DNS 記錄設定」這類操作
- 你希望做完之後不只功能能用,連驗證與排錯也有概念
開始前先確認
- 先確認你的信箱服務商是誰。
- 整理好對方提供的 MX、SPF、DKIM、DMARC 設定值。
- 如果網站與信箱分不同供應商,特別注意不要互相覆蓋。
先提醒你一件事
DNS 問題常常不是設定全錯,而是你同時改了太多地方,最後分不清楚是哪一步造成的。
詳細教學與操作步驟
概述
要讓你的網域能正常收發電子郵件,需要設定多筆 DNS 記錄。除了基本的 MX 記錄之外,SPF、DKIM 和 DMARC 記錄能大幅降低你的郵件被歸類為垃圾信的機率。
Email DNS 記錄全景圖
設定 MX 記錄
MX(Mail Exchange)記錄告訴寄件方:「寄到這個網域的郵件,應該送到哪台郵件伺服器。」
cPanel 虛擬主機郵件:
- 登入 Cloudflare Dashboard,進入你的網域 DNS 設定頁面。
- 點選「Add record」,填寫:
- Type: MX
- Name:
@ - Mail server:
mail.example.com(替換為你的網域) - Priority:
0 - Proxy status: 此項會自動設為 DNS only(灰色雲朵)
- 同時新增一筆 A 記錄,將
mail.example.com指向你主機的 IP 位址。
Google Workspace 與 Microsoft 365 設定差異
這是台灣最多企業使用的兩個 Email 服務。兩者的 DNS 設定方式有明顯差異,搞混的話信就收不到了。
Google Workspace 完整設定
MX 記錄:
SPF 記錄:
v=spf1 include:_spf.google.com -all
DKIM 設定步驟:
- 登入 Google Admin Console。
- 前往「Apps」→「Google Workspace」→「Gmail」→「Authenticate email」。
- 選擇你的網域,點選「Generate new record」。
- 選擇 DKIM key bit length(建議 2048 位元)。
- 複製產生的 DKIM 值。
- 到 Cloudflare DNS 新增 TXT 記錄:
- Name:
google._domainkey - Content: 貼上 Google 提供的 DKIM 值
- Name:
- 回到 Google Admin Console,點選「Start authentication」。
DMARC 記錄:
v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@example.com;
Microsoft 365 完整設定
MX 記錄:
| 優先順序 | 郵件伺服器 |
|---|---|
| 0 | example-com.mail.protection.outlook.com |
注意:Microsoft 365 的 MX 記錄中,你的網域名稱中的 . 會被替換成 -。例如 example.com 變成 example-com。
SPF 記錄:
v=spf1 include:spf.protection.outlook.com -all
DKIM 設定步驟:
- 登入 Microsoft 365 Defender。
- 前往「Email & collaboration」→「Policies & rules」→「Threat policies」→「DKIM」。
- 選擇你的網域,Microsoft 會提供兩筆 CNAME 記錄。
- 到 Cloudflare DNS 新增這兩筆 CNAME 記錄:
- Name:
selector1._domainkey - Target:
selector1-example-com._domainkey.example.onmicrosoft.com - Name:
selector2._domainkey - Target:
selector2-example-com._domainkey.example.onmicrosoft.com
- Name:
- 回到 Microsoft 365 Defender,啟用 DKIM。
Microsoft 365 額外需要的記錄:
Microsoft 365 除了 Email 之外,Teams 和其他服務也需要額外的 DNS 記錄:
# Autodiscover(Outlook 自動設定)
autodiscover CNAME autodiscover.outlook.com
# SRV 記錄(Teams / Skype for Business)
_sipfederationtls._tcp SRV 100 1 5061 sipfed.online.lync.com
_sip._tls SRV 100 1 443 sipdir.online.lync.com
Google Workspace vs Microsoft 365 對照表
| 項目 | Google Workspace | Microsoft 365 |
|---|---|---|
| MX 記錄數量 | 5 筆 | 1 筆 |
| SPF include | _spf.google.com | spf.protection.outlook.com |
| DKIM 記錄類型 | TXT | CNAME |
| DKIM selector | google._domainkey | selector1._domainkey + selector2._domainkey |
| 額外記錄 | 無 | Autodiscover CNAME + SRV |
| DKIM key 更換 | 手動在 Admin Console | 自動輪換 |
設定 SPF 記錄
SPF(Sender Policy Framework)記錄聲明哪些伺服器有權代表你的網域發送郵件,幫助收件方辨識合法郵件。
- 點選「Add record」,填寫:
- Type: TXT
- Name:
@ - Content: 依據你的郵件服務填入(見下方範例)
- 點選「Save」。
常見 SPF 記錄範例:
# cPanel 虛擬主機
v=spf1 +a +mx +ip4:你的主機IP -all
# Google Workspace
v=spf1 include:_spf.google.com -all
# Microsoft 365
v=spf1 include:spf.protection.outlook.com -all
# 同時使用 cPanel 郵件 + Google Workspace 轉寄
v=spf1 +a +mx include:_spf.google.com -all
# 同時使用多個郵件服務(注意 DNS lookup 不能超過 10 次)
v=spf1 include:_spf.google.com include:spf.protection.outlook.com -all
SPF 參數說明:
+a:允許網域 A 記錄的 IP 發信+mx:允許 MX 記錄指向的伺服器發信include::允許指定的第三方服務發信-all:嚴格模式,拒絕未授權的伺服器(建議使用)~all:軟拒絕,標記但不一定拒絕(測試階段可用)
SPF 限制: 一個網域只能有一筆 SPF 記錄。如果你有多個郵件服務,要把它們合併成一筆。同時,SPF 的 DNS lookup 次數上限是 10 次,超過就會驗證失敗。
設定 DKIM 記錄
DKIM(DomainKeys Identified Mail)使用數位簽章驗證郵件確實來自你的網域,且內容未被竄改。
- 從你的郵件服務提供商取得 DKIM 記錄值:
- cPanel: 登入 cPanel →「Email Deliverability」→ 查看或修復 DKIM 設定。
- Google Workspace: 管理控制台 →「Apps」→「Google Workspace」→「Gmail」→「Authenticate email」。
- Microsoft 365: Security Portal → DKIM 設定頁面。
- 在 Cloudflare 新增 TXT 記錄:
- Type: TXT
- Name:
default._domainkey(或服務商指定的名稱) - Content: 服務商提供的 DKIM 值(一長串以
v=DKIM1;開頭的文字)
- 點選「Save」。
設定 DMARC 記錄
DMARC(Domain-based Message Authentication, Reporting and Conformance)整合 SPF 和 DKIM 的驗證結果,告訴收件方如何處理驗證失敗的郵件。
- 在 Cloudflare 新增 TXT 記錄:
- Type: TXT
- Name:
_dmarc - Content: (參考下方範例)
- 點選「Save」。
DMARC 記錄範例(由鬆到嚴):
# 階段一:純監控(剛開始設定建議從這裡開始)
v=DMARC1; p=none; rua=mailto:dmarc@example.com;
# 階段二:隔離(觀察一段時間沒問題後)
v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com;
# 階段三:嚴格拒絕(確認 SPF 和 DKIM 都正常後再啟用)
v=DMARC1; p=reject; rua=mailto:dmarc@example.com; adkim=s; aspf=s;
DMARC 參數說明:
p=none:僅監控,不採取行動(測試用)p=quarantine:將可疑郵件放入垃圾信匣p=reject:直接拒絕可疑郵件rua=mailto::接收 DMARC 彙總報告的 Email 信箱ruf=mailto::接收個別失敗報告的 Email 信箱adkim=s:DKIM 對齊模式嚴格(strict)aspf=s:SPF 對齊模式嚴格(strict)pct=100:套用政策的比例(預設 100%)
建議做法: 先從 p=none 開始,觀察 DMARC 報告幾週,確認沒有合法郵件被誤判後,再逐步升級到 p=quarantine 最後到 p=reject。
設定 BIMI 記錄
BIMI(Brand Indicators for Message Identification)是一個比較新的標準,讓你的品牌 Logo 出現在支援的收件匣中(例如 Gmail、Apple Mail)。當收件者看到你的郵件時,旁邊會顯示你的品牌 Logo,提升辨識度與信任感。
BIMI 的前提條件:
- DMARC 政策必須設為
p=quarantine或p=reject(p=none不行)。 - 需要準備一個符合規格的 SVG Logo 檔案(SVG Tiny PS 格式)。
- 部分郵件服務商(如 Gmail)額外要求 VMC(Verified Mark Certificate),需要向 CA 購買。
BIMI 記錄設定:
# 基本 BIMI 記錄(不含 VMC)
_bimi TXT "v=BIMI1; l=https://example.com/brand/logo.svg;"
# 含 VMC 的 BIMI 記錄(Gmail 要求)
_bimi TXT "v=BIMI1; l=https://example.com/brand/logo.svg; a=https://example.com/brand/vmc.pem;"
在 Cloudflare 設定方式:
- 點選「Add record」。
- 填寫:
- Type: TXT
- Name:
default._bimi - Content:
v=BIMI1; l=https://example.com/brand/logo.svg;
- 點選「Save」。
BIMI Logo 規格要求:
- 檔案格式:SVG Tiny PS(不是一般的 SVG)
- 背景必須是方形
- 不能有透明背景
- 建議尺寸:至少 32x32 像素的視覺清晰度
- 必須透過 HTTPS 公開存取
各郵件服務商對 BIMI 的支援狀態:
| 服務商 | 支援 BIMI | 是否要求 VMC |
|---|---|---|
| Gmail | 支援 | 需要 VMC |
| Apple Mail (iOS 16+) | 支援 | 需要 VMC |
| Yahoo Mail | 支援 | 不需要 |
| Fastmail | 支援 | 不需要 |
| Outlook/Microsoft 365 | 尚未支援 | - |
現階段建議: BIMI 的設定比較進階,VMC 的費用也不低(每年數萬元台幣)。如果你是中小企業,可以先把 MX、SPF、DKIM、DMARC 設定好就好,BIMI 等到品牌規模較大時再考慮。
驗證設定
所有記錄設定完成後,請使用以下工具驗證:
- 前往 mxtoolbox.com。
- 輸入你的網域名稱,分別檢查:
- MX Lookup: 確認 MX 記錄正確。
- SPF Record Lookup: 確認 SPF 記錄語法正確且 DNS lookup 不超過 10 次。
- DKIM Lookup: 輸入 selector(例如
default或google)和網域名稱。 - DMARC Lookup: 確認 DMARC 記錄存在且語法正確。
- 另外也可以寄一封測試信到 mail-tester.com 提供的測試地址,取得完整的郵件健康度評分。
- 如果有設定 BIMI,可以用 bimigroup.org/bimi-generator 驗證 BIMI 記錄。
Email DNS 排錯對照表
| 症狀 | 可能原因 | 檢查項目 |
|---|---|---|
| 完全收不到信 | MX 記錄缺失或錯誤 | dig example.com MX |
| 收得到信但寄不出去 | SPF 設定缺失 | dig example.com TXT 找 SPF |
| 寄出的信進對方垃圾郵件 | SPF/DKIM/DMARC 不完整 | 用 mail-tester.com 測試 |
| 寄出的信被直接拒收 | IP 在黑名單或 rDNS 未設定 | mxtoolbox.com Blacklist Check |
| DKIM 驗證失敗 | DKIM 記錄值過期或未啟用 | 確認 selector 和 TXT 記錄正確 |
| SPF PermError | SPF 的 DNS lookup 超過 10 次 | 合併 include 或改用 ip4/ip6 |
做完後怎麼確認自己真的有設對
- 至少用
dig、nslookup或線上工具再驗一次,區分是設定錯、快取,還是 propagation。 - 重新看一次你剛剛改過的設定值、網址、帳號或紀錄,確認沒有填錯對象。
- 如果這篇操作會影響正式網站或正式信箱,建議再從不同網路或不同裝置測一次。
- 寄一封測試信給自己(用不同網域的信箱),確認收件正常且不會進垃圾郵件。
這一題最常踩的坑
- 只設 MX,不設 SPF / DKIM / DMARC。
- 同時存在多條 SPF 導致驗證衝突(SPF 只能有一筆 TXT 記錄)。
- 改完 DNS 沒用郵件檢測工具驗證結果。
- Google Workspace 和 Microsoft 365 的 DKIM 設定方式搞混(一個是 TXT,一個是 CNAME)。
- MX 記錄的目標主機(如 mail.example.com)不小心開了 Cloudflare Proxy。
如果你要往下一步走
信箱若已建立好帳號,接著可以搭配 cPanel Email 帳號設定教學。 如果你接下來要把網站正式上線,也可以直接銜接侃瑞的 主機方案 或 VPS 方案。