View Categories

WordPress 收不到表單通知信?八成是沒設 SMTP

1 分鐘閱讀

快速答案:WordPress 預設用主機的 PHP mail() 寄信,沒有任何身分驗證,Gmail、Outlook 很容易把它判成垃圾信或直接丟掉。裝一支 SMTP 外掛(FluentSMTP、WP Mail SMTP 都可以),用你自己網域的信箱或寄信服務驗證後發送,八成的「收不到通知信」就解決了。

為什麼會這樣 #

表單外掛(Contact Form 7、Gravity Forms、Elementor 表單、WPForms)本身不會寄信,它們把信交給 WordPress 的 wp_mail(),再交給主機寄出。主機寄出的信寄件人常是 wordpress@你的網域,沒有 SPF、DKIM 驗證,收件端就當它是偽造的。

還有一種是「以前明明會收」:換了主機、改了管理員信箱、Gmail 改密碼或關掉低安全性應用程式,原本的寄信設定就失效了。有時信其實有寄出,只是全進了垃圾信匣。

怎麼處理 #

  1. 先分清楚是「寄不出」還是「收不到」:到表單外掛的紀錄看資料有沒有進來(Gravity Forms 的「項目」、Elementor 的「Submissions」、WPForms 的「Entries」)。有資料就代表表單正常,問題在寄信。
  2. 安裝 SMTP 外掛,選一種寄信方式:Gmail/Google Workspace 要用「應用程式密碼」或 OAuth 授權,一般密碼不能用;公司信箱的 SMTP;或 Brevo、SendGrid、Mailgun 這類寄信服務。
  3. 寄件人信箱用你網域的信箱(例如 service@你的網域)。用 Gmail 當寄件人卻透過別的服務寄,會被判偽造。
  4. 到 DNS 加 SPF 與 DKIM 紀錄,寄信服務會給你要加的值。
  5. 開啟 SMTP 外掛的「郵件紀錄」,送一封測試信。紀錄裡的錯誤訊息通常直接告訴你是帳密錯、還是連不上。
  6. 通知信收件人多填一個備援信箱。

我們實際遇過的情況 #

一個教育機構網站設定 FluentSMTP 時,試過改用信箱的應用程式密碼也沒有成功,得回到信箱服務那端處理;另一個網站則是搬主機之後,寄信設定得整個重做。一家電商改了管理員 email 之後,自動歡迎信就壞了——寄信設定常跟某個帳號綁在一起,改了其中一個,另一個也要檢查。

比較特別的一例是活動售票電商:買兩張票以上的客人收不到票券信,郵件紀錄顯示附件超過限制,是票券 PDF 太大,跟 SMTP 無關。所以「先看紀錄」永遠是第一步,不要一開始就重設。

什麼時候該找人 #

紀錄顯示寄信成功但對方永遠收不到(多半是網域被列入黑名單,或 SPF、DKIM、DMARC 設錯)、公司信箱是 Microsoft 365 需要 OAuth 授權、或發現有大量不明註冊與垃圾信從你的網站寄出——這時候不要只調設定,需要有人看 DNS 與主機端紀錄。

常見問題 #

表單通知信收不到,要先查什麼? #

先到表單外掛的紀錄看資料有沒有進來。有資料代表表單正常,問題在寄信;再開 SMTP 外掛的郵件紀錄看錯誤訊息。

用 Gmail 當 SMTP 為什麼一直認證失敗? #

Gmail 不能用一般密碼,要用「應用程式密碼」或 OAuth 授權;改過 Gmail 密碼或關掉低安全性應用程式後,原設定也會失效。

紀錄顯示寄信成功,對方還是收不到怎麼辦? #

先請對方看垃圾信匣;仍沒有,多半是網域被列黑名單或 SPF/DKIM/DMARC 設錯,要看 DNS 與主機端紀錄。

想有人每月幫你顧著表單與通知信:網站守護方案。先看體質:免費健檢