為什麼 WordPress 發信要改走 Zeabur Email API?比 SMTP 更穩的做法

WordPress 發信不該每個外掛各自設定 SMTP。這篇說明如何用 Zeabur Email API 與 mu-plugin 統一 wp_mail,讓表單、訂單、會員與系統通知更好維護。

為什麼 WordPress 發信要改走 Zeabur Email API?比 SMTP 更穩的做法

為什麼 WordPress 發信要改走 Zeabur Email API?比 SMTP 更穩的做法

很多 WordPress 網站收不到表單通知、WooCommerce 訂單信、忘記密碼信時,第一反應都是「再裝一個 SMTP 外掛」。

這樣可以解一部分問題,但不是所有問題。

如果網站越來越像一個正式系統,有會員、訂單、表單、課程、通知,發信就不該被看成外掛設定,而應該被看成基礎設施。

這篇講的是另一種做法:用 Zeabur Email API 統一 WordPress 的 wp_mail() 出口。

如果你只是想先用 Gmail 設定 SMTP,可以看:WordPress SMTP 設定教學

解答先行

WordPress 發信改走 Zeabur Email API,真正解決的不是「能不能寄出去」,而是:

  • 發信出口統一
  • DNS 驗證清楚
  • API key 可控
  • WooCommerce、表單、會員信共用同一套規則
  • 部署環境可以用環境變數管理
  • 比每個外掛自己綁 SMTP 更容易排查

一句話:

真正要統一的不是 SMTP 帳號,而是整站的發信出口。

SMTP 外掛不是不能用,而是容易分散

WordPress 裡很多功能都會寄信:

  • 聯絡表單
  • WooCommerce 訂單信
  • 會員註冊信
  • 忘記密碼信
  • 後台通知
  • 課程平台通知

如果每個外掛都自己處理一套 SMTP,日後會出現幾個問題:

問題後果
發信設定分散不知道是哪個外掛寄的
寄件人不一致容易進垃圾信或驗證失敗
密碼到處填安全風險變高
外掛停用就壞基礎功能被外掛狀態影響
錯誤不好查沒有統一 log 或錯誤出口

所以問題不是 SMTP 沒用,而是當網站變複雜後,SMTP 外掛容易變成一堆分散設定。

Zeabur Email API 是什麼

Zeabur 官方文件把 Email 定位成企業級郵件發送 API 服務,提供 REST API、即時 / 定時發送、批次發送、附件、Webhook、網域管理與 API key 管理。

它比較像:

  • Resend
  • SendGrid
  • Mailgun
  • AWS SES 的包裝層

而不是:

  • Gmail 收件匣
  • Outlook 信箱
  • 讓你每天登入看信的工具

也就是說:

Zeabur Email 是你的網站用來寄通知信、交易信、驗證信的基礎服務,不是一般信箱。

為什麼要接 wp_mail()

WordPress 很多發信流程最後都會走到 wp_mail()

如果你用 mu-plugin 攔截 wp_mail(),就可以讓這些信共用同一條發信管線。

這裡的邏輯是:

WooCommerce / 表單 / WordPress 核心
↓
wp_mail()
↓
mu-plugin 攔截
↓
Zeabur Email API
↓
寄件網域驗證後送出

mu-plugin 的好處是它會自動載入,不像一般外掛需要後台手動啟用。對「發信底盤」這種基礎功能來說,它比一般外掛更穩。

適合改走 Zeabur Email API 的網站

網站類型建議
純部落格可用 SMTP 即可
品牌官網 + 表單可評估 API 發信
WooCommerce建議統一發信出口
會員站 / 課程站建議統一發信出口
大量交易信建議使用正式 Email API 服務

如果只是個人部落格,一個穩定 SMTP 外掛就夠。

但如果你有訂單、會員、金流、課程通知,發信就不是小功能,而是交易流程的一部分。

DNS 驗證比程式碼更重要

Email API 不是接上去就結束。

你還要確認:

  • SPF
  • DKIM
  • DMARC
  • 寄件網域
  • from address

最常見的坑是:

DNS 驗證的是 support.example.com,但程式寄件人卻寫 [email protected]

這樣很容易出現驗證失敗、退信、進垃圾信。

所以正式上線前,請先決定:

  • 哪個網域用來寄系統信
  • 哪個信箱作為 from
  • 哪個信箱作為 reply-to
  • WooCommerce 訂單與客服要回到哪裡

實作概念:不要把 API Key 寫死

程式碼裡不要寫:

$api_key = '你的真實 API KEY';

比較好的做法是從環境變數讀:

$api_key = getenv('ZEABUR_EMAIL_API_KEY');

或在部署平台用 secret / env var 管理。

對 Zeabur 這類平台來說,環境變數本來就是服務設定的一部分。發信 API key 不應該進 Git,也不應該貼在文章或 prompt 裡。

Zeabur Email API 和傳統 SMTP 怎麼選

情境傳統 SMTPZeabur Email API
個人部落格適合可用但不一定必要
小型官網表單適合適合
WooCommerce 訂單信可用更建議
多外掛都會寄信容易分散較好統一
想用 webhook 追蹤狀態較不直覺較適合
想把設定放進部署流程較弱較適合

我的判斷很簡單:

  • 只是要「能寄信」:SMTP 可以
  • 想要「發信可維護」:API 出口比較穩

和 WooCommerce 搬遷的關係

WooCommerce 搬到 Zeabur 時,Email 是必測項目。

你要測:

  • 新訂單給管理員
  • 訂單確認給顧客
  • 付款完成
  • 忘記密碼
  • 會員註冊
  • 退款通知

如果這些信沒有寄出去,網站看起來能下單,客戶體驗還是會壞掉。

搬遷 SOP 可以接著看:WooCommerce 搬到 Zeabur 前要注意什麼

常見問題 FAQ

Zeabur Email 是信箱嗎?

不是。Zeabur Email 比較像寄信 API 服務,讓網站、App 或後端程式寄出通知信、驗證信、交易信,不是讓你登入收信的 Gmail 類工具。

WordPress 一定要改走 Zeabur Email API 嗎?

不一定。個人部落格或簡單官網用 SMTP 外掛就夠。但 WooCommerce、會員站、課程站這類有交易或帳號流程的網站,統一發信出口會比較穩。

為什麼不用每個外掛自己設定 SMTP?

因為設定會分散,日後難排查。統一 wp_mail() 出口後,表單、訂單、會員與系統通知可以共用同一套寄件規則。

API Key 可以貼給 AI 幫我設定嗎?

不建議。請用 placeholder 讓 AI 產生流程與程式碼,真正的 API key 應該放在 Zeabur Dashboard 或環境變數裡。

參考資料

設定好了卻還是不動

寄信與登入這一類設定,錯誤通常橫跨網站、網域、主機三層,單看一層查不出來。

設了沒生效的話,加 LINE 把網址跟設定畫面給我們,我們幫你看是哪一層擋住。

想把 WooCommerce 開成有品牌感的電商?

從金物流、商品頁到結帳優化 —— 不只是能買,是讓客人想買。

MO DESIGN STUDIO

我們專注品牌網站設計、行銷著陸頁與整合式 CMS 流程,協助團隊打造有感的線上體驗。

← 返回部落格