使用 DigitalOcean 架設 Ghost blog 該如何設定發信功能?

這篇文章跟大家分享我在自架 Ghost blog 系統到 DigitalOcean 伺服器上時遇到的信件設定問題與解法。

使用 DigitalOcean 架設 Ghost blog 該如何設定發信功能?
Photo by Mathyas Kurmann / Unsplash

奇怪,官方的信件設定文件明明不複雜,沒道理照著做會不成功,在網路上查了老半天看到其實滿多人有類似的情況。

就在剛剛,在跟 Perplexity 對話下找到了新的破口,1. 可能是伺服器的 Port 被關閉。2. Ghost blog 中的 mail 設定有一個叫做 secure 的參數,這個 secure 參數可以是 true / false,但是它 true / false 並不是表示 "開/關" 而是切換 SSL 或 TLS 的加密方式。

在了解這兩點後,再次修改 Glost blog 的 mail 設定,然後系統就可以正確寄出訂閱信啦!

接著來說說為什麼我這樣調整設定檔 ~

  1. DigitalOcean block SMTP port 25, 465, 587 to prevent spam and other abuses of their platform. 所以說基本 25, 465, 587 port 已經無法在 DigitalOcean 中的伺服器(Droplet)使用。
  2. Mailgun SMTP 可用的 port 包含 25, 587, 2525, 465 而其中 25, 465, 587 已經被 DigitalOcean block,所以只能使用 2525,而 2525 因為是 TLS 加密方式,所以 ghost 的 mail 設定中要把 secure 設為 false。
Ghost blog 中的 config.production.js 的 secure 參數可以是 true / false,但是它 true / false 並不是表示 "開/關" 而是設定要 SSL 還是 TLS 加密方式。

架網站就是常常會遇到這種明明照著文件走卻還是會失敗的情況,這時候往往要花費許多精力才能找到問題跟解法,雖然很煩,但是在問題解決之後都會有滿滿的成就感,或許這就是為什麼我喜歡自己動手做的原因吧!