多數人以為網站搬家出包,會在換主機的那一刻立刻爆發,真正常見的情況卻是兩天後才浮現,那時你早就以為搬家順利收工。表單通知信忽然斷斷續續,有時準時送達、有時消失;客戶回信說寄給你的網域信箱退信;自己從新主機寄出的信,對方收到了卻直接躺進垃圾信匣。這幾個症狀一開始很容易被誤會成客戶端的問題,直到累積夠多才會想到跟搬家有關。
這種搬家 email 問題,指的是網站本身收發信原本一切正常,直到換了主機或動了 DNS 之後才開始出狀況的一整類故障,跟一開始就沒裝好寄信外掛、主機根本沒開放郵件函式的情況完全是兩回事。它棘手的地方在於,DNS 記錄平常沒有人會去動,出錯之後也不會跳出明顯的錯誤訊息,只會讓某些信件靜靜地消失。看完這篇,你會知道搬家後信件出包最常見的三個成因,以及一套照著做就能把風險壓到最低的搬家時序。
在深入三個成因之前,先分清楚網站自己寄出去的信,跟你網域信箱本身在收的信,其實走的是兩條完全不同的路,這個分野也決定了同一個問題,該往哪個方向查起。
搬家後幾小時到兩天內開始收不到信的典型時間點
如果你的網站本來收發信都正常,換了主機或動了 DNS 之後才開始出問題,這就是搬家造成的典型故障,跟另一種「網站從架站那天起就沒收過信」(多半是沒裝好 SMTP 外掛,或主機本身沒開放郵件函式)完全不同。判斷方法很簡單,搬家前信件一切正常,就代表寄信這條路本身沒問題,出錯的地方藏在跟主機或 DNS 有關的設定裡。
真正麻煩的是時間點。多數人以為換完主機、確認網站打得開就算搬家完成,實際上郵件相關的問題往往不會在切換的那一刻現身,而是要等幾個小時到兩天之內才慢慢浮現。Google Workspace 官方說明就指出,變更 MX 記錄後最久可能需要 48 小時才會全面生效,在新記錄生效之前,電子郵件仍會持續送往先前的郵件服務供應商。這也說明了為什麼問題不是搬完當下立刻爆發,而是延遲出現,且新舊交錯。
這段過渡期最典型的樣貌不是「完全收不到信」,而是「有的收得到、有的收不到」的混亂狀態,網站的表單通知信斷斷續續,客戶寄到網域信箱的信收到退信通知,自己寄出的信被對方判定成垃圾信。這幾個症狀背後,其實藏著網站寄信與網域收信兩條完全不同的故障路徑。
先分清網站寄信與網域信箱收信是兩條不同的故障路徑
同樣是搬家後信件出問題,背後其實藏著兩套完全獨立的系統:網站主動寄出去的信,像是表單通知信、系統自動信,跟你網域信箱本身在收發的信,例如 info@你的網域這種真人在用的信箱,走的路徑不一樣,出錯的原因也不一樣。搞懂這個分野,遇到問題才知道該往哪個方向查;MX、TTL、SPF/DKIM 這三個環節,剛好對應這兩條路徑。

網站本身寄出的通知信,跟著網站主機的寄件設定走
表單填完跳出的「已收到您的訊息」通知信、系統自動寄出的密碼重設信,這類網站主動寄出去的信,實際上是由新主機的伺服器,或它代轉的寄件服務,用你網站網域的名義寄出去的,跟 MX 記錄完全無關。也就是說,就算 MX 記錄搬得一絲不差,這類信一樣可能寄丟或被判定成垃圾信,因為問題出在別的地方。
會不會被收件方接受,關鍵在於寄件網域有沒有正確設定 SPF 和 DKIM(下面第三節細談)。Google Workspace 官方文件也點出常見的網域寄件者包含網站主機、線上表單服務這類角色,並提醒一旦開始使用新的郵件伺服器或第三方寄件服務,就務必更新 SPF 記錄,否則新寄件者寄出的訊息可能被標記為垃圾信。換句話說,搬家換了主機,等於換了一個新的寄件者,這件事一定要同步反映到 DNS 設定裡。
網域信箱本身的收發信,只跟著 MX 記錄走
真人在用、掛在你網域下的信箱就不一樣了,不管這個信箱是網站主機附贈的,還是外部郵件服務代管的,它的收信路徑完全由 MX 記錄決定,跟網站本身放在哪台主機沒有關係。Cloudflare 對 MX 記錄的定義很單純,DNS 的 MX(mail exchange)記錄用來指示電子郵件應該依照 SMTP 協定送到哪一台郵件伺服器,而且查詢 MX 記錄是由訊息傳輸代理(MTA)在使用者寄信的當下主動完成的查詢動作。
這代表只要 MX 沒有正確指到郵件伺服器,不管網站搬到哪裡、跑得多順暢,這個信箱一樣收不到信;反過來說,就算網站主機掛掉,只要 MX 記錄還指著原本的郵件伺服器,信箱收信照樣不受影響。這也是為什麼搬家時最容易漏掉這一步,注意力全放在網站能不能打開,卻忘了信箱收信靠的是另一組完全獨立的記錄。
MX 記錄該跟著 A 記錄一起搬,卻是最常被忽略的一步
三個常見成因裡,這是最直接、也最常發生的一個:搬家時只顧著把網站檔案、資料庫、A 記錄搬到新主機,卻忘了 MX 記錄也要一起確認搬過去,或者至少確認新主機商沒有用預設值把它覆蓋掉。這一漏,不是信件慢慢變差,而是直接找不到人。
搬家工具搬的是網站檔案與資料庫,不包含 DNS 記錄
主機搬家服務、一鍵備份還原工具,職責範圍通常只到網站程式與資料庫這一層,DNS 區域檔案裡的 A、MX、TXT 等所有記錄,是由網域註冊商或另外一套獨立的 DNS 服務在管理,兩者本來就是分開的系統。搬網站不會自動搬 DNS,這中間需要人工逐筆比對、確認搬過去。
AWS 官方的 Route 53 遷移文件把取得現有 DNS 設定列為遷移流程的第一步,並明確列出需要人工重建的記錄類型,包含 A、AAAA、MX(郵件伺服器記錄,負責把郵件流量導向郵件伺服器)、CNAME 等。這份文件的邏輯很清楚,這些記錄要逐一確認,不會隨著網站搬遷自動帶過去,漏了哪一筆,就得自己發現、自己補回去。
沒有 MX 記錄時,郵件會改用網域本身的 A 記錄收信
這是最關鍵、也最少人知道的技術細節,直接解釋了為什麼漏搬 MX 常常表現成整批信瞬間退回,而不是傳播期間慢慢變差。SMTP 標準規範 RFC 5321 明確規定,如果查不到任何 MX 記錄,寄件伺服器會把這個網域當成擁有一個隱含(implicit)的 MX,直接改用該網域自己的 A 或 AAAA 記錄去投遞郵件。
搬家之後,網域的 A 記錄已經指向新的網站主機,而這台主機是一台專門處理網頁請求的 Web 伺服器,並不負責收信。外部寄來的信一旦找不到 MX,就會被導去敲網站主機的 25 埠,多半直接連線失敗、被退信,而不是單純變慢或延遲。這也是為什麼漏搬 MX 這個原因,症狀通常特別急、特別明顯,不是逐漸惡化,而是說斷就斷。

MX 只能指向主機名稱,不能是 CNAME 或 IP
重建 MX 記錄時,還有一個常見的手誤。在新的 DNS 管理介面重新填寫時,MX 的值必須是一個可以再被解析出 A 或 AAAA 記錄的主機名稱,不能直接填 IP 位址,也不能指向另一個 CNAME 別名,否則一樣會收信失敗。
Cloudflare 的說明寫得很直接,MX 記錄必須直接指向伺服器的 A 或 AAAA 記錄,指向 CNAME 是 RFC 文件明文禁止的做法。RFC 5321 也規定,MX 記錄指到的名稱在查詢後必須回傳至少一筆位址記錄,其他任何回應,特別是查到 CNAME 的情況,都超出這份標準的範圍。換句話說,把 MX 填成 CNAME 這種做法不是效果比較差,而是根本不符合規範,收件方的郵件伺服器可能直接判定失敗。
TTL 沒有提前調低造成的傳播期解析不一致
第二個常見原因,跟漏搬 MX 完全不同。就算所有記錄都正確重建了,只要搬家前沒有提前把 TTL 調低,全球各地的 DNS 解析伺服器仍會依照舊的快取時間,繼續使用舊資料一段時間,造成有些人的信送到舊主機、有些人送到新主機的過渡期混亂。這正是前面提到時有時無現象的成因,跟 MX 記錄本身對不對,是兩件不一樣的事。
TTL 決定舊記錄在別人快取裡留多久
DNS 記錄被查詢之後,解析伺服器不會每次都重新問一遍,而是把答案先快取一段時間,這段時間的長度就是 TTL。RFC 1035(DNS 標準規範)把 TTL 定義成一個 32 位元無號整數,指定該資源記錄在被丟棄前可以被快取的時間間隔,以秒為單位,值為 0 則代表該記錄只能用於進行中的這一次交易,不應該被快取下來。
也就是說,TTL 沒到期之前,即使你已經把記錄改好,外界的解析伺服器仍然會回應快取裡的舊答案。這不是設定出錯,而是 DNS 系統原本就設計成這樣運作,只是搬家的人常常忘了考慮這一層時間差。
沒有提前降低 TTL,會出現新舊主機交錯回應的過渡期
如果搬家前 MX 或其他相關記錄的 TTL 還停在預設的高數值,例如一天甚至兩天,即使搬家當下就把記錄全部改好,實際上要等到全部快取過期,全球的解析伺服器才會統一切換到新答案。在這段過渡期裡,同一個網域寄出去的信、寄進來的信,可能一部分走舊主機、一部分走新主機;一旦舊主機在這段期間就被關掉或停止服務,走到舊主機的那部分信件就會直接遺失或退信。
AWS 官方的遷移文件把這段過渡期具體量化,常見的 NS 記錄預設 TTL 是 172800 秒,也就是兩天,若沒有提前調低,一旦搬遷過程中出狀況,網域可能會有長達兩天無法正常運作。文件並提醒,切換名稱伺服器之後要持續監控該網域的流量,包含網站或應用程式流量,以及電子郵件,一旦發現流量或信件出現中斷,就用之前記下的舊名稱伺服器切回去。
搬家前先把 TTL 降到短時間,是官方文件建議的標準做法
具體該怎麼做並不複雜,搬家前一段時間,先把要異動的記錄,尤其是 MX 與相關的 NS 記錄,TTL 調低,等新設定確認穩定、信件沒有中斷之後,再把 TTL 調回原本較高的數值,兼顧搬家彈性與平時的查詢效能。
AWS 官方文件建議把 TTL 調整到 60 秒到 900 秒之間,也就是最多 15 分鐘,並且要等待舊的 TTL 過期之後才進行正式切換,確認新設定運作正常、流量與信件都沒有異常,再把 TTL 改回較高的數值,文件本身示範的做法是改回 172800 秒。這個順序反過來做的話,等於還沒等舊快取消化完就急著切換,過渡期的混亂只會更久、更難排查。
新主機寄件網域缺少 SPF 與 DKIM 的垃圾信判定風險
第三個原因,症狀跟前兩個完全不同,MX 與 TTL 出問題時是收得到收不到,這裡的症狀則是信寄出去卻被當垃圾信,甚至直接被拒收。換了新主機之後,如果新主機的寄件伺服器沒有被加進網域的 SPF 記錄,也沒有在新主機重新設好 DKIM 簽章,收件方的郵件伺服器會判斷這封信不是被授權用這個網域名義寄出的,因而把信丟進垃圾信匣,甚至直接拒收。這正好對應前面提到網站本身寄信那條路徑。
SPF 記錄列出有權用網域寄信的伺服器清單
SPF 的運作原理很直接,網域在 DNS 發布一筆 TXT 記錄,列出所有被授權可以用這個網域名義寄信的伺服器,收件方的郵件伺服器收到信時,會檢查寄件伺服器是不是在這份清單裡。Cloudflare 形容這筆記錄就像一份由門口接待員把關的訪客名單,不在名單上的人,接待員就不會放行;同樣地,只要寄件伺服器的位址不在 SPF 記錄裡,收件伺服器就會拒收這封信或把它判定成垃圾信。
換到新主機卻沒把新主機的寄件位址加進去,等於新主機寄出的每一封信都通不過這項檢查。Google Workspace 官方文件也特別提醒,如果開始使用新的郵件伺服器或第三方寄件服務,務必更新 SPF 記錄,否則新寄件者寄出的訊息可能被標記為垃圾信;文件還補了一句常被忽略的限制,每個網域只能有一筆 SPF 記錄,要涵蓋所有主機或郵件服務,如果同時存在多筆 SPF 記錄,郵件反而可能被送進收件人的垃圾信匣。
DKIM 的簽章金鑰要在新主機重新產生並發佈
DKIM 用的是一組公開與私密金鑰做數位簽章,寄件伺服器用私密金鑰替每封信簽章,收件方拿網域 DNS 上公開的那把公鑰去驗證簽章是否吻合。Cloudflare 說明這筆 DKIM 記錄儲存網域的公開金鑰,接收郵件的伺服器可以查詢這筆記錄取得公鑰,私密金鑰則由寄件方保密,用來替信件標頭簽署。
DKIM 金鑰通常是綁在特定主機或郵件系統上產生的,換了主機等於私鑰跟著換了一組。如果沒有在新主機重新產生金鑰,也沒有把新的公鑰發布到 DNS,新主機寄出的信簽章會直接對不上,甚至根本沒有簽章,一樣會被判定成不可信。Cloudflare 進一步說明驗證的過程,接收伺服器會用同樣的內容加上郵件內文的雜湊,搭配 DKIM 記錄裡的公鑰去檢查數位簽章是否有效,只有使用了正確的私鑰、且內容沒有被竄改,這封信才會通過 DKIM 檢查。
搬家 email 的正確時序,從備份記錄到上線後驗證
MX 沒搬對、TTL 沒調低、SPF 與 DKIM 沒設好,三個原因各自獨立,卻常常同時發生在同一次搬家裡;真正能救回來的,是把它們串成一套照著走的正確順序:搬家前要先做什麼準備、換主機當下要同步處理什麼,上線後又該用什麼方法確認信件真的恢復正常,而不是搬完才憑感覺乾等。

搬家前備份現有的 MX、SPF、DKIM 記錄,是常被跳過的一步
搬家前第一件事,是把現有 DNS 區域裡跟郵件相關的記錄,也就是 MX、SPF 的 TXT、DKIM 的 TXT,整份記錄下來。這麼做的用意很實際,換到新的 DNS 管理介面時才有依據逐筆重建,不會搬完才發現漏了什麼,卻已經找不回原本的設定值。
AWS 官方遷移文件把取得目前的 DNS 設定列為遷移流程的第一步,具體做法是向原本的 DNS 服務商取得區域檔案,或者直接匯出完整的記錄清單,並列出應該取得或重建的記錄類型,包含 A、AAAA、MX、CNAME 等。這一步花的時間不多,卻是後面所有動作的依據,跳過它,等於在沒有藍圖的狀況下重建整套系統。
DNS 記錄要在切換 A 記錄之前先同步搬完
正確的順序不是先換網站主機、之後有空再處理信件,而是把 A 記錄、MX 記錄、SPF 與 DKIM 這幾組記錄視為同一批,一起在新的 DNS 服務裡建好、彼此對齊之後,才進行正式切換,也就是更新網域的名稱伺服器或指向設定。這樣才能避免中間出現網站已經在新主機、但郵件相關記錄還沒建好的空窗期。
AWS 官方文件的遷移步驟順序正是這樣安排的,先在新 DNS 服務建好包含 MX 在內的完整記錄,接著才調整 TTL、切換名稱伺服器,最後才監控流量與信件是否正常。整個流程的設計邏輯就是先備齊、再切換、後驗證,這個順序顛倒過來做,等於把驗證的機會提早用掉,出問題時反而沒有退路。
上線後要用 DNS 查詢工具與寄送測試信確認狀態正常
切換完成之後,別急著假設一切正常。先用 DNS 查詢工具,像是 nslookup、dig,或線上的 MX 查詢工具,確認 MX 記錄真的解析到預期的郵件伺服器;接著實際寄一封測試信到網域信箱,也從網站表單送出一筆測試資料,檢查郵件標頭裡的驗證結果是否顯示通過,而不是只看信有沒有進來這麼粗略的判斷。
Google Workspace 官方文件建議的做法是查看郵件標頭裡的驗證結果欄位,確認 SPF 的結果是否為通過,藉此判斷 SPF 是否真的生效,而不是單看信件送達與否。AWS 官方文件也明確要求,切換名稱伺服器之後要監控該網域的流量,包含網站或應用程式流量以及電子郵件,如果流量變慢或中斷,就用先前記下的名稱伺服器切換回去,再回頭查出問題出在哪裡。這個保留退路的心態,貫穿整套正確時序,先備份、先確認、再放手切換,才不會讓自己陷入邊改邊試、越改越亂的處境。
搬家後信件出問題,根本原因通常不是網站壞了,而是 DNS 這一層被搬家的注意力晾在一邊。MX 記錄有沒有跟著走、TTL 有沒有提前調低、SPF 與 DKIM 有沒有在新主機重新設定,這三件事各自獨立,卻常常在同一次搬家裡一起被忽略。把這幾組記錄當成跟網站程式、資料庫同等重要的搬遷項目,搬家前先備份、搬家時同步重建、上線後實際寄信驗證。網站打不打得開只是搬家的一半,搬家 email 這一關真正過了,才算把這次搬家收乾淨。
