快速答案:WordPress 預設用主機的 PHP mail() 寄信,沒有任何身分驗證,Gmail、Outlook 很容易把它判成垃圾信或直接丟掉。裝一支 SMTP 外掛(FluentSMTP、WP Mail SMTP 都可以),用你自己網域的信箱或寄信服務驗證後發送,八成的「收不到通知信」就解決了。
為什麼會這樣 #
表單外掛(Contact Form 7、Gravity Forms、Elementor 表單、WPForms)本身不會寄信,它們把信交給 WordPress 的 wp_mail(),再交給主機寄出。主機寄出的信寄件人常是 wordpress@你的網域,沒有 SPF、DKIM 驗證,收件端就當它是偽造的。
還有一種是「以前明明會收」:換了主機、改了管理員信箱、Gmail 改密碼或關掉低安全性應用程式,原本的寄信設定就失效了。有時信其實有寄出,只是全進了垃圾信匣。
怎麼處理 #
- 先分清楚是「寄不出」還是「收不到」:到表單外掛的紀錄看資料有沒有進來(Gravity Forms 的「項目」、Elementor 的「Submissions」、WPForms 的「Entries」)。有資料就代表表單正常,問題在寄信。
- 安裝 SMTP 外掛,選一種寄信方式:Gmail/Google Workspace 要用「應用程式密碼」或 OAuth 授權,一般密碼不能用;公司信箱的 SMTP;或 Brevo、SendGrid、Mailgun 這類寄信服務。
- 寄件人信箱用你網域的信箱(例如
service@你的網域)。用 Gmail 當寄件人卻透過別的服務寄,會被判偽造。 - 到 DNS 加 SPF 與 DKIM 紀錄,寄信服務會給你要加的值。
- 開啟 SMTP 外掛的「郵件紀錄」,送一封測試信。紀錄裡的錯誤訊息通常直接告訴你是帳密錯、還是連不上。
- 通知信收件人多填一個備援信箱。
我們實際遇過的情況 #
一個教育機構網站設定 FluentSMTP 時,試過改用信箱的應用程式密碼,並沒有成功;另一個網站在搬主機的前後,管理員信箱與寄信外掛都得重新設定一輪。一家電商改了管理員 email 之後,自動歡迎信就壞了——寄信設定常跟某個帳號綁在一起,改了其中一個,另一個也要檢查。
一個活動售票電商遇過購票後收不到信:查郵件紀錄,指向的是檔案大小限制,不是寄信認證。同一個站另外還有客人買兩張票以上卻只拿到一個票號,那是票券沒產生多組編號,要往票券外掛查,不是往 SMTP 查。所以「先看紀錄」永遠是第一步,不要一開始就重設。
什麼時候該找人 #
紀錄顯示寄信成功但對方永遠收不到(多半是網域被列入黑名單,或 SPF、DKIM、DMARC 設錯)、公司信箱是 Microsoft 365 需要 OAuth 授權、或發現有大量不明註冊與垃圾信從你的網站寄出——這時候不要只調設定,需要有人看 DNS 與主機端紀錄。
WPTOOLBEAR網站工具熊