Defaults.Exposed › 設置 › SPF
如何在 AWS Route 53 上設定 SPF
在你的 Route 53 託管區域中新增一條 SPF 記錄,讓郵件服務商能分辨出你的真實郵件和偽造郵件。
這件事對你的生意意味著什麼
SPF(寄件人原則框架,Sender Policy Framework)是你網域 DNS 裡的一條簡短聲明,列出哪些郵件伺服器有權以你的名義傳送郵件。當有人收到一封聲稱來自你的郵件時,他們的郵件服務商會去核對這份名單。如果寄件伺服器不在名單上,這封郵件就會顯得可疑——要麼被丟進垃圾桶,要麼直接被攔截。
說白了:SPF 讓別人更難以郵件方式冒充你的生意,同時幫助你真正傳送的郵件進到收件匣、而不是垃圾郵件資料夾。它只是一條記錄,免費,幾分鐘就能搞定。
開始之前:你的 DNS 真的是由 Route 53 託管的嗎?
這是大多數人會弄錯的一步。一條 DNS 記錄只有在由 Route 53 來應答你網域的 DNS 查詢時才會起作用。
Route 53 是 DNS 託管商,不是信箱服務商——它負責應答 DNS,但不運行你的收件匣。這裡有兩點很關鍵:
- 託管區域必須是目前生效的那個。 在 Route 53 主控台中打開 Hosted zones(託管區域),選中你的網域。記下該區域顯示的四個 NS(名稱伺服器)值。
- 你網域的名稱伺服器必須指向這些值。 如果你是通過 Route 53 註冊的網域(在 **Registered domains(已註冊網域)**下),通常已經對齊好了。但如果你是在別處註冊的,或者同一網域有不止一個託管區域,那麼目前生效的名稱伺服器可能指向了完全不同的地方——而你在這裡加的任何東西都不起作用。請到你的註冊商處核對名稱伺服器,確保它們與這個託管區域裡的四個 NS 值一致。如果不一致,請改到你 DNS 實際所在的地方去新增 SPF 記錄。
先弄清一件事:是誰在替你傳送郵件?
SPF 必須列出每一個替你網域傳送郵件的服務。常見的有 Google Workspace、Microsoft 365,或託管你信箱的任何服務商。每一家都會公佈一個供你填進 SPF 記錄的值(通常類似 Google 的 include:_spf.google.com,或 Microsoft 365 的 include:spf.protection.outlook.com)。請到你郵件服務商自己的說明頁面去查確切的值——這正是你必須填對的部分。
如果你通過 Amazon SES(亞馬遜自己的郵件傳送服務)傳送郵件,請注意:SES 預設使用另一套機制,對 SES 而言 SPF 是可選的——但如果你在 SES 中設定了自訂的 MAIL FROM 網域,請按照 SES 針對該網域的確切說明操作。SES 是與 Route 53 相互獨立的服務;Route 53 只負責儲存 DNS 記錄。
Route 53 分步操作
- 登入 AWS 主控台,打開 Route 53。
- 在左側選單中選擇 Hosted zones(託管區域),然後點擊你網域的名稱。
- 點擊 Create record(建立記錄)。
- 如果你看到帶路由原則選項的精靈,請切換到簡單表單(找 Quick create record(快速建立記錄))——SPF 不需要任何進階路由。
- 把 Record name(記錄名稱)欄位留空。空名稱表示「網域本身」。主控台會在該欄位旁顯示你的網域,所以你無需重新輸入。
- 把 **Record type(記錄類型)**設為 TXT。
- 在 **Value(值)**欄位中填入你的 SPF 文字,並用雙引號包起來:
"v=spf1 include:_spf.google.com ~all"把include:部分替換成你實際郵件服務商告訴你的那個(些)值。在 Route 53 中,外層的引號是必需的——詳見下方的坑。 - TTL 保持預設即可(300 秒沒問題)。
- 點擊 Create records(建立記錄)。
Route 53 上人們常踩的坑
- TXT 值必須加雙引號。 與一些會替你加引號的 DNS 託管商不同,Route 53 要求你自己輸入引號。請填
"v=spf1 ... ~all",而不是v=spf1 ... ~all。漏掉引號是 Route 53 上最常見的單一錯誤。 - 根網域的記錄名稱要留空。 名稱留空表示網域本身。如果你在 Name 欄位裡填了完整網域,Route 53 會再追加一遍區域名,你會得到
yourdomain.com.yourdomain.com——一條永遠不會被核對到的記錄。 - 每個網域只能有一條 SPF 記錄。 你不能有兩條
v=spf1的 TXT 記錄——郵件服務商會判定為損壞。如果根網域已經存在一條 TXT 記錄,請編輯它來加入新服務,而不要再建第二條 SPF 記錄。 - 選對託管區域、選對帳戶。 如果你有多個託管區域(或多個 AWS 帳戶),很容易改錯。請確保你正在編輯的區域,其 NS 值與你目前生效的名稱伺服器一致。
~all與-all的區別。~all(軟失敗)表示「未列出的都可疑」;-all(硬失敗)表示「拒收任何未列出的」。在你確認一切都能正常傳送郵件之前先用~all,等確定名單完整後再收緊為-all。- 改動不是即時的。 DNS 更新在全網擴散可能需要幾分鐘到幾個小時不等。
驗證是否生效
儲存記錄並稍等片刻讓它生效後,用本站的免費檢測來核對。它會用通俗的語言告訴你 SPF 記錄是否存在、格式是否正確。
完成了? 免費檢查您的網域 以確認設置已生效——並查看您在全部 34 項檢查中的完整評級。