【Ghost 架站必備】Ghost 自架站驗證信收不到?SMTP 郵件服務設定全教學

如果你在自架 Ghost 部落格後發現無法收到系統寄出的驗證信、邀請信或通知郵件,問題多半出在 SMTP 郵件服務未正確設定。本文將手把手教你如何設定 SMTP,包括常見的 Gmail、Mailgun、SendGrid 等服務,並說明 Ghost 配置檔的寫法與測試方法,協助你快速解決郵件發送失敗的問題,讓網站正常運作、使用者順利註冊與登入。

【Ghost 架站必備】Ghost 自架站驗證信收不到?SMTP 郵件服務設定全教學

💡
閱讀本篇之前需要先閱讀 取得 Gmail SMTP 應用程式密碼

完成 Gmail SMTP 應用程式密碼與參數準備後,我們接著要將這些資訊套用到 Ghost 架站的發信設定中。這部分會說明要如何自行部署,確保你的 Ghost 架站能順利寄送電子報與通知信件。

SMTP信箱選擇

類型

適用情境

備註

Gmail SMTP

小型部落格、開發測試、會員通知

免費使用,但有限流量

專業 SMTP(如 Brevo、Postmark)

發信量大、商業用途、可追蹤信件開啟率

通常需付費,但穩定性與 deliverability 較高


自部署 Ghost 設定 Gmail SMTP

一、適用對象與前置條件

本章適用於使用 Ghost CLI 或 Docker 自行部署 Ghost 的使用者,無論在本機(localhost)或雲端 VPS(如 Linode、DigitalOcean、EC2)皆可套用。

請確認以下條件已完成:

  • 已安裝並正常運作的 Ghost 網站
  • 可編輯 config.production.json 或是config.production.json 設定檔
  • 主機防火牆允許 port 587 或 465 的連線
  • 已取得 Gmail 應用程式密碼(參見第一部分)

二、修改 config檔案

在 Ghost 專案根目錄下找到config.production.json或是config.development.json可以使用任意文字工具打開(記事本、vscode、notepad)

接著我們修改mail的部分,

原文件

"mail": {
"transport": "Direct"
},

修改過後

"mail": {
  "transport": "SMTP",
  "options": {
    "host": "smtp.gmail.com",
    "port": 587,
    "secure": false,
    "auth": {
      "user": "[email protected]",
      "pass": "your_app_password"
    }
  }
}

修改ghost config檔

"[email protected]"換成自己的mail
"your_app_password"換成第一部分的「應用程式密碼」
⚠️注意事項:"secure" 設為 false 是為了搭配 TLS port 587;若用 port 465 則應改為 true。

三、重啟 Ghost 並測試發信功能

完成設定後,儲存檔案並在專案根目錄執行以下指令重啟 Ghost:

ghost restart

測試方式建議如下:

  • 進入 Ghost 後台 → 成員 → 新增成員 → 填入信箱 → 確認是否收到邀請信
  • 或使用「忘記密碼」功能進行測試

四、測試發信功能與錯誤排除

建議使用 Ghost 後台的會員邀請或重設密碼流程進行測試。若發生錯誤,可參考以下處理方式:

錯誤類型

建議排查

信件未送達

檢查 Gmail SMTP 使用限制(每日 500 封)

SMTP 錯誤

確認 Gmail 帳號是否啟用 2FA 並使用 App Password