← Blog Home

測試郵件送達率:最常見的失敗模式與排查方法(Deliverability Debug Guide)

tw 2026-02-07 13:49:55

在產品上線或功能改版時,最容易踩雷的其中一個環節,就是郵件送達率(Email Deliverability)。你在後台看到「寄送成功」,但使用者回報「收不到驗證碼、OTP、重設密碼信、通知信」,甚至連垃圾郵件匣都沒有,這種狀況往往會直接打斷註冊與登入流程,導致轉換率掉一大截。

送達率的麻煩在於:它不是單一問題,而是一條鏈。從你的系統呼叫寄信服務開始,到 MTA(Mail Transfer Agent)投遞、對方收件伺服器接收,再到收件匣分類,每一段都可能出錯。更現實的是:錯的時候常常沒有明顯錯誤訊息,你只能從退信、log、header、DNS、收件端行為慢慢拼出真相。

這篇文章會用「常見失敗模式」的方式整理送達率測試時最常遇到的問題,並給你一套從外到內、可落地的排查流程。你不需要一次把所有郵件學術理論讀完,只要照著步驟做,通常就能快速縮小範圍,找到真正的卡點。

送達率測試的核心概念:你要分清「送出、送達、進收件匣」

很多團隊把「API 回傳 200」當成寄信成功,這其實只是你的系統把信交給寄信端而已。真正的送達率要拆成三層:

  • 送出(Sent / Accepted):你的寄信服務或 SMTP 接受了郵件。
  • 送達(Delivered):對方收件伺服器接收並回覆成功碼。
  • 進收件匣(Inbox Placement):信件沒有被丟到垃圾郵件、促銷分類、或被靜默丟棄。

測試時你必須同時觀察這三層,不然很容易「以為修好了」,但其實只是從 A 問題變成 B 問題。

常見失敗模式 1:DNS 設定缺漏或錯誤(SPF / DKIM / DMARC)

如果你的網域是新網域、或剛換寄信服務,最常見的第一個地雷就是 DNS。這類錯誤通常會導致:

  • 信件被直接拒收(hard fail)
  • 信件被放進垃圾郵件匣(soft fail)
  • 收件端不明原因延遲或靜默丟棄

SPF 常見錯法

  • 沒把實際寄信來源加入:你以為用 A 平台寄,其實你同時有 B、C 來源(例如 app、CRM、客服系統)。
  • 多筆 SPF TXT:同一個網域放了兩筆以上 SPF,很多收件端會判定為 permerror。
  • include 太多導致查詢超限:SPF 解析有 DNS lookup 次數限制,超過就可能 fail。
  • ~all 與 -all 用錯:政策太嚴會導致合法信源也被擋;太鬆則影響信譽與風險控管。

DKIM 常見錯法

  • selector 打錯:平台要求的 selector 與 DNS 設定不一致。
  • key 沒更新或被覆蓋:輪替(rotate)後舊 key 還在用,或 DNS 沒同步。
  • 簽名對不上 From 網域:寄信網域、簽名網域、回覆網域不一致,導致驗證失敗。

DMARC 常見錯法

  • p=reject 太早上線:在 SPF/DKIM 還沒穩定對齊前就拒收,會大量掉信。
  • alignment 沒對齊:SPF/DKIM pass 了,但與 From 網域不對齊,DMARC 仍可能 fail。
  • rua 報表沒看:DMARC 報表本來就是用來抓漏信源與偽冒行為,不看等於失去雷達。

排查建議:送達率測試第一步先把 DNS 的 SPF、DKIM、DMARC 釐清,並確認你每一個實際寄信來源都被涵蓋。很多「收不到」其實在這一步就能解掉一半。

常見失敗模式 2:新網域 / 新 IP 信譽不足(Domain/IP Reputation)

你什麼都設定對了,仍然會收不到,尤其在剛上線、剛換網域、剛換寄信供應商時特別常見。原因是:收件端(尤其大型信箱服務)會用信譽來判斷你值不值得信任。

典型症狀

  • 小量測試時能收到,大量一寄就開始掉
  • 某些信箱收得到,某些信箱完全收不到
  • 同樣內容,換一個 From 網域就差很多
  • 信件偶爾進收件匣、偶爾進垃圾匣,波動很大

常見原因

  • 新網域沒有歷史:收件端對你沒有足夠信任資料。
  • 共享 IP 被連坐:你用的寄信平台是 shared IP,同網段有人濫寄會拖累你。
  • 突然爆量:從 0 變成一天寄幾萬封,像突然冒出的濫寄者。

實務建議:新網域需要「漸進式放量」與「穩定的寄送模式」。先把交易型郵件(驗證、重設密碼)與行銷型郵件分開,用不同子網域或不同寄信設定,避免互相拖累。

常見失敗模式 3:灰名單(Greylisting)造成延遲,看起來像「沒收到」

灰名單不是拒收,而是一種「先暫時拒絕,看看你會不會重試」的策略。對方收件伺服器可能回覆暫時性錯誤碼,要求你的寄信端稍後再投遞。

這會造成一個很尷尬的現象:你在產品裡期待 OTP 立刻抵達,但收件端把你延遲 2~15 分鐘,使用者就會覺得整個系統壞了。

典型症狀

  • 同一封信晚到,但最終會到
  • 某些公司信箱(自建郵件伺服器)特別常發生
  • 低頻率時沒事,遇到尖峰時延遲明顯

排查建議:查看寄信端的重試策略與投遞 log,確認是否出現暫時性拒收(例如 4xx)。產品上也建議加入「重新寄送」與「提示可能延遲」的 UX,避免使用者在等待期間反覆點擊造成更多寄送壓力。

常見失敗模式 4:速率限制與短時間大量寄送(Rate Limiting / Throttling)

OTP、驗證碼、登入通知這類信件非常容易遇到速率限制,因為它們通常集中在短時間爆發。收件端或寄信平台可能會做節流,導致:

  • 部分信件被延遲投遞
  • 部分信件被暫時拒收(4xx)
  • 嚴重時被判定為異常行為而封鎖一段時間

常見觸發原因

  • 同一收件網域短時間大量 OTP(例如某企業內部員工同時登入)
  • 被機器人攻擊,反覆觸發「寄驗證碼」
  • 前端重送機制做得太積極,變相 DDoS 自己的寄信能力

實務建議:在產品層加上防濫用措施(冷卻時間、行為風控、captcha 或風險評分),同時在寄信端做佇列與節流,讓尖峰變得平滑。對 OTP 類郵件,穩定比瞬間爆量更重要。

常見失敗模式 5:內容觸發垃圾信規則(Content-Based Filtering)

你可能完全沒想到:同樣是交易型郵件,只因為文字、連結、格式或語氣不同,就會被判為垃圾信。尤其是「驗證碼」這種看起來很制式的內容,反而容易被大量濫用者模仿,導致過濾規則更敏感。

典型踩雷點

  • 過多的感嘆號、全大寫、促銷語氣:即便你不是行銷信,也容易被誤判。
  • 短網址或可疑跳轉:某些短網址域名信譽不好,會拉低整封信評分。
  • 圖片比例過高:幾乎只有一張大圖、文字很少,容易進垃圾匣。
  • HTML 結構破碎:標籤不完整、內嵌樣式怪異、或使用不合規的追蹤碼。
  • 缺少清楚的品牌識別:From 名稱、簽名、公司資訊太模糊,可信度下降。

排查建議:測試時準備兩版內容:一版極簡(純文字或簡單 HTML)、一版正式模板。若極簡版送達正常、正式版容易進垃圾匣,就代表你的模板或內容元素觸發了過濾規則。交易信的設計重點是清楚、克制、可辨識,而不是華麗。

常見失敗模式 6:收件匣分類問題(Inbox vs Junk vs Promotions)

很多「我沒收到」其實是使用者沒有在正確地方找。大型信箱服務會把信分到主收件匣、促銷、社交、更新,或直接丟到垃圾郵件。對你來說都是「有投遞」,但對使用者來說就是「找不到」。

典型症狀

  • 使用者說沒收到,但你從投遞報告看是 delivered
  • 某些帳號會進促銷分類,某些會進主收件匣
  • 同一個使用者第一次能收到,第二次就進垃圾匣

實務建議:在產品提示中引導使用者檢查垃圾郵件與其他分類,同時在信件內容保持一致的品牌識別(From 名稱、主旨語氣、域名一致),讓收件端更容易建立穩定分類。對 OTP 類信件,主旨與內容要清楚、避免行銷感,並盡量減少多餘外部連結。

常見失敗模式 7:退信碼被忽略(Bounce Codes)

送達率排查最怕的是「只看有沒有收到」,卻不看退信原因。退信碼與回覆訊息通常能直接告訴你問題在哪一層:是網域不存在、信箱滿了、被封鎖、被策略拒收、還是暫時性延遲。

如果你有寄信平台或 SMTP log,請把退信分類成兩大類:

  • 硬退(Hard bounce):地址不存在、網域無效、永久拒收。這類地址應該停止再寄,否則會傷信譽。
  • 軟退(Soft bounce):暫時性問題,例如信箱滿、灰名單、臨時策略限制。這類可以重試,但要注意頻率與總次數。

實務上,很多送達率掉下來都是因為你把硬退當成可重試,反覆撞牆,讓收件端判定你在濫寄。

常見失敗模式 8:寄信身分不一致(From / Return-Path / Reply-To 不對齊)

有些系統會把寄信拆成多個元件:顯示給使用者的 From、實際回彈用的 Return-Path、以及回覆用的 Reply-To。如果這三者的網域與設定不一致,常見結果是:

  • SPF pass 但不對齊,DMARC fail
  • DKIM 簽名存在但與 From 不一致
  • 收件端評分下降,進垃圾匣或延遲

排查建議:用原始郵件 header 檢查 Authentication-Results,看 SPF/DKIM/DMARC 的結果與 alignment 狀態。很多「看似都有設」但仍掉信的案例,最後都卡在對齊。

常見失敗模式 9:測試方法不完整(只測某一家信箱,或只看單一指標)

送達率測試如果只用某一個信箱(例如只用 Gmail)或只看「有沒有收到」,很容易得出錯誤結論。不同收件端的策略差異很大,你需要更像「系統測試」而不是「個人收信測試」。

建議的測試矩陣

  • 至少準備多種收件端:大型免費信箱、企業信箱、自建網域信箱
  • 同時測交易信與通知信:不同內容類型的過濾規則不同
  • 測不同寄送節奏:低頻、正常、尖峰(模擬 OTP 暴增)
  • 同時觀察投遞結果與收件匣位置,而不是只看 delivered

如果你要找「最常掉的那一段」,就要把測試設計得像排障:每次只改一個變因,否則你會不知道到底是內容、DNS、信譽、還是速率造成差異。

一套可落地的排查流程(從最快到最關鍵)

  1. 確認是否真的投遞到收件端:看寄信平台投遞狀態與回覆碼,避免把「送出」誤當「送達」。
  2. 抓一封問題信的原始 header:看 Authentication-Results、SPF/DKIM/DMARC 結果與對齊。
  3. 檢查 DNS 設定:SPF 是否單一、DKIM selector 是否正確、DMARC 是否過嚴。
  4. 判斷是延遲還是丟棄:是否出現 4xx 暫時拒收、灰名單、或節流。
  5. 對照內容差異:用極簡版與正式模板交叉測,定位是否內容觸發。
  6. 檢查信譽因素:是否新網域、是否共享 IP、是否突然爆量,並調整寄送節奏。
  7. 建立監控與回報:把 bounce、delay、spam placement 做成可追蹤的指標,避免每次都靠猜。

這套流程的精神是:先把「必定會造成失敗」的基礎錯誤排掉,再處理「機率性波動」的信譽與內容問題。很多團隊反過來做,先改模板、先猜文案,結果繞一大圈才發現是 SPF 有兩筆。

實務建議:把交易型郵件當成產品的一部分來設計

送達率不是純後端問題,它也跟你的產品流程有關。尤其 OTP/驗證信這類「每一秒都重要」的信件,建議你從系統與 UX 兩端同時下手:

  • 提供重新寄送但要有節制:加入冷卻時間,避免使用者狂點造成寄送風暴。
  • 提示檢查垃圾郵件與分類:讓使用者知道可能出現在促銷或垃圾匣。
  • 避免同時寄多封:例如多步驟驗證時把通知合併,減少短時間密集寄送。
  • 維持一致品牌識別:From 名稱、網域、主旨格式穩定,收件端更容易建立信任。
  • 把送達率當成監控指標:至少要能看投遞成功率、延遲率、退信率、垃圾匣率的變化。

當你把這些做起來,送達率問題就不再是「某一天突然爆炸」,而是可預期、可觀測、可迭代的系統品質。

結語:不要只問「為什麼收不到」,要問「卡在哪一段」

郵件送達率最容易讓人焦躁,是因為你看不到整條鏈。但只要你掌握「送出、送達、進收件匣」的分層概念,並用 DNS 驗證、投遞回覆碼、原始 header、內容交叉測試、信譽與節流策略逐段排查,絕大多數問題都能被定位。

你不需要一次變成郵件專家;你只需要建立一套穩定的測試與排障方式。當這套流程跑順了,寄信就會從不確定的黑盒子,變成可管理、可優化的產品能力。

Tip: Temporary inboxes are best for low-risk sign-ups and verification. Avoid sensitive accounts that require long-term recovery access.