快速答案:WooCommerce 的訂單信跟表單通知信走同一條寄信管道,但多了一層「訂單狀態觸發」。先看訂單備註,確認狀態有沒有走到會寄信的那一步;再用郵件紀錄外掛看那封信有沒有被產生。沒產生是狀態或設定問題,有產生卻沒到才是寄信與網域驗證問題。兩條線分開查,不要一開始就重設 SMTP。
為什麼會這樣 #
表單通知信是「有人送出就寄」,訂單信是「訂單變成某個狀態才寄」。處理中訂單的信在付款成功時寄、完成訂單的信在你把狀態改成「完成」時寄;狀態沒走到那一步,信就不存在。直接改資料庫或用某些匯入工具改狀態,也不會觸發。
出貨通知信更特別:WooCommerce 內建沒有「已出貨」這種信,它通常來自物流或追蹤外掛、或自訂的訂單狀態。那支外掛停用、更新出錯、授權到期,出貨信就無聲消失,其他訂單信卻都正常。
第三種是寄得出去但客人收不到:寄件人用 Gmail 這類公用信箱卻透過別的服務寄出,或寄件網域沒有 SPF、DKIM、DMARC,都容易被拒收或丟進垃圾信匣。這一層跟表單通知信完全相同,所以「表單信收得到、訂單信收不到」多半不在這裡,而在前兩層。
怎麼處理 #
- WooCommerce → 設定 → 電子郵件:確認處理中訂單、完成訂單這兩封是啟用的;「新訂單」的收件人是不是還填著離職同事的信箱。
- 打開那張訂單看「訂單備註」:狀態什麼時候改、由誰改。狀態從沒到「完成」,信當然沒寄。
- 裝郵件紀錄外掛,用訂單頁右側「訂單動作」重新發送新訂單通知,或寄送訂單明細給顧客,看紀錄裡有沒有這封信、錯誤訊息是什麼。
- 出貨信先找出是哪支外掛寄的,到它的設定頁確認觸發狀態與收件人;外掛剛更新過就先懷疑它。
- 寄件人對齊:電子郵件設定裡的寄件者地址,要和 SMTP 外掛實際登入的帳號同網域。DNS 的 SPF 只能一筆,include 造成的 DNS 查詢總數不能超過十次;DMARC 也只能一筆,重複兩筆等於沒設。
- SMTP 外掛換過寄信服務的話,確認預設連線真的切到新服務,而不是還連著已停用的舊主機。
- 最後才看客人那端:訂單上的帳單信箱是否正確,用社群帳號註冊的客人常沒有真實信箱。
我們實際遇過的情況 #
一個網站反映某天起完成訂單的信都沒收到,去寄信信箱看寄件備份也沒有紀錄。沒有寄件備份,代表信根本沒交到寄信服務手上,問題在網站這一端——該看的是郵件紀錄與 SMTP 連線,而不是請客人翻垃圾信匣。
一次全面的寄信檢查,我們發現幾個站完全寄不出信,原因是 SMTP 外掛還連著已停用的舊寄信主機;同一次也發現寄件網域的 DMARC 記錄重複兩筆,等於沒設。把連線改到現行的寄信服務、整併 DNS 記錄後,測試信恢復送達。
什麼時候該找人 #
郵件紀錄顯示寄送成功、客人卻一直收不到(多半是網域信譽或 DNS 驗證),或訂單狀態被不明程式批次改動——這要同時看 DNS、外掛與訂單紀錄,自己反覆重設只會讓正常的部分也壞掉。延伸閱讀:表單通知信收不到、MX、SPF、DKIM 怎麼設。
WPTOOLBEAR網站工具熊