WordPress 表單收不到信怎麼查?先測表單,再查寄信紀錄

許哲維 · 

WordPress 表單收不到信怎麼查?先確認詢問有沒有進到網站

如果你的網站靠表單接詢問、預約或訂單,最麻煩的不是表單直接壞掉。

比較難發現的是,客人送出後看到成功訊息,你卻沒有收到通知,還可能以為最近沒有人詢問,其實是通知信發送失敗。

少掉的不只是一封信,你可能漏掉一個正在等回覆的客人,還誤以為市場沒有反應。

我在檢查一份網站寄信紀錄時,發現一封沒有寄出去的確認信,前台沒有顯示異常,系統也沒有把失敗通知送到其他管道,所以這類故障很難被發現。

先測表單,再查寄信紀錄

先不要急著研究 SMTP、DNS,也不用立刻換外掛,從公開頁送一筆測試,再沿著資料走過的地方往下查,就能知道問題停在哪一段。

先查後台有沒有保存這筆表單紀錄,再看通知信有沒有發送成功,最後確認寄信失敗時,有沒有人會收到警報。

  1. 從公開頁送一筆測試,用一個平常沒有設在網站後台的信箱,記下送出的大概時間。
  2. 看後台有沒有這筆表單紀錄,有紀錄表示後台保存了這次送出的內容,不過有些表單預設不會保存送出紀錄,如果後台找不到,先確認表單是否有這項功能,確定會保存卻沒有這筆紀錄,才表示問題發生在寄信之前。
  3. 找同一時間的寄信紀錄,完全沒有紀錄就先查表單的通知設定,有紀錄但顯示失敗,就打開錯誤內容。
  4. 紀錄顯示成功,再查收件端,成功通常只代表寄信服務已經接受這封信,不代表一定進了收件匣,這時再查垃圾信匣、退信與寄件網域驗證。

照這個順序查,才知道接下來該查表單送出、通知設定、寄信服務,還是收件端,沒有先分開看就同時換外掛、寄信服務和 DNS,只會讓問題更難追。

寄送失敗,拆開看是兩件事

我用這個順序回頭看當時的失敗清單,裡面一共有 10 筆,第一眼看起來像同一種寄信問題,逐筆打開後才發現要分成兩類:

  • 9 筆沒有收件人,寄信服務收到一個不完整的請求,所以直接拒絕。
  • 1 筆有正確的收件人,但連線等了約 10 秒仍沒有回應,最後逾時失敗。

完整寄信紀錄裡另外還有一封相同的逾時信,我手動重試後,那封信成功寄出。

這兩種錯誤不能用同一個方法處理,沒有收件人通常是表單或通知設定的問題,換另一條寄信通道還是會失敗,只有連線逾時才可能由後備通道接手。

所以不能一看到寄信失敗就直接換寄信通道,要先看是哪一種錯誤,才知道該改通知設定,還是處理寄信連線。

下次再故障,可以主動知道嗎?

可以,但只保留寄信紀錄還不夠,寄信失敗和表單根本沒有送出是兩種不同的故障,也要用不同方式發現。

如果網站已經產生通知信,只是發送失敗,寄信紀錄會留下錯誤,這時可以把失敗警報送到另一個管道,讓負責的人知道。

但如果表單在產生通知信之前就壞了,寄信系統根本不會留下失敗紀錄,這種狀況要靠定期從網站前台送出測試表單,才有機會提早發現。

WordPress 表單故障的兩種發現方式:寄信失敗透過外部警報通知,表單送出前故障則靠定期測試
  1. 保留表單與寄信紀錄,表單紀錄讓你知道送出的內容有沒有保存在後台,寄信紀錄至少要查得到寄送時間、收件人、狀態和錯誤內容。
  2. 寄信失敗時,通知負責的人,不要再用同一條電子郵件寄警報,否則寄信故障時,連警報也可能收不到,可以改用 Slack、Telegram 或 Discord 這類不同管道。
  3. 定期從前台送出測試表單,確認後台有這筆表單紀錄,管理者也收到通知,若有確認信,也要確認填表人收得到,這一步可以補上寄信紀錄看不到的故障。

表單欄位、通知規則、寄信外掛、寄信服務或 DNS 有變動後,都要再走一次完整流程。

後備連線有用,但不是所有漏信都能救

如果主要寄信連線暫時連不上,後備連線可以改走另一條路,它處理的是逾時或連線中斷,遇到收件人空白或通知規則錯誤,換連線也沒有用。

當下 10 筆失敗裡,只有那一筆連線逾時可能由後備連線接手,另外 9 筆仍要回頭處理通知設定。

我指定第二條連線寄了一封測試信,信有進收件匣,寄信紀錄也顯示由第二條連線送出,這能證明第二條路本身可以用。

我只確認第二條連線本身能寄信,沒有故意把正常的主要連線弄壞來測自動切換,因為這樣做還要復原正式設定、重新產生密碼,沒有必要冒這個風險。

所以目前只能說第二條路可以用,不能說自動切換已經實際驗證,主要連線真的出錯時,還是要回頭看寄信紀錄,確認後備連線有沒有接手。

常見問題

最近沒有網站詢問,怎麼知道是不是表單壞了?

開無痕視窗直接填寫表單測試,再看網站後台有沒有這次測試的表單紀錄,不過有些表單預設不會保存紀錄,要先確認這項功能,後台有紀錄但沒有通知信,就找同一時間的寄信紀錄,確定會保存卻找不到這筆紀錄,才查表單送出流程。

寄信紀錄顯示成功,為什麼還是沒收到?

成功通常只代表寄信服務已經接受這封信,不代表一定進入收件匣,接著要查垃圾信匣、退信紀錄、收件地址,以及寄件網域的 SPF、DKIM 等驗證。

WordPress 網站一定要保留寄信紀錄嗎?

不是每個網站都一定要裝同一套工具,但如果表單承接詢問、預約、訂單或密碼重設,至少要有辦法回查寄送時間、收件人、狀態與錯誤內容,沒有紀錄,這類故障很容易安靜地持續下去。

設好後備連線,就不會再漏信了嗎?

不會,後備連線處理的是逾時或連線中斷,不能修正空白收件人、錯誤的通知條件,也不能保證郵件進入收件匣,仍然要保留紀錄、設定失敗通知並做完整表單測試。

許哲維(Ben)

本文作者

許哲維 Ben

易德資訊負責人,做 WordPress 十年多,在維觀點分享網站實作、工具使用和經營一人公司的經驗。

關於我與做過的事 →