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

完成 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 |