[WordPress] 讓 Google Cloud Platform 上的 WordPress 站台,透過 Mailgun 第三方服務寄送郵件

[WordPress] 讓 Google Cloud Platform 上的 WordPress 站台,透過 Mailgun 第三方服務寄送郵件

在 Google Cloud Platform 上裝好 WordPress 之後,

發現有個奇怪的問題:有網友在文章裡留言時,我都沒辦法收到郵件通知…

這樣其實有點麻煩,我得每天自己去 WordPress 後台 > 控制台那邊,

看看今天有沒有人來留言,以免回覆時間隔太久了…

 

查了一下,原因似乎是 Google Cloud Platform 的限制,

它並不開放傳統的 SMTP 的 port,所以信件沒辦法寄出來…

在 Google Cloud Platform 的文件 上,有提到可以使用第三方提供的 SMTP 服務,

來避開這個問題,就先來看看其中一種 Mailgun 要怎麼用吧~

 

1. 註冊 Mailgun 帳號

Mailgun 官網註冊一個新的帳號,

註冊頁下面有個 payment info 可以填信用卡資料,可以先不填:

 

填入手機號碼,會傳簡訊驗證碼過來:

 

輸入驗證碼:

 

驗證完畢,帳號就算註冊成功了~

剛註冊好的帳號,一天最多只能從 WordPress 網站寄 300 封信,

給已經認證過的 email 地址 (目前就是只有自己剛剛填的 email)。

 

可以用 SSH 連線進 Google Cloud Platform 上的 WordPress 站台,

再執行上面的 curl 指令,應該可以收到測試成功的信~

(不過它這是透過 HTTPS 將信件內容傳給 Mailgun,

Mailgun 再把信寄到我的 email,並不算是在 WordPress 站台上使用 SMTP 寄信)

 

2. 在 Mailgun 中新增 WordPress 網域

如果在 Mailgun 中新增網域的話,可以增加可以寄信的數量 (目前是到 10000 封/月)~

到 Mailgun 官網中,選擇 Add Domain,

這邊它提醒說最好是設定成 sub domain,

像我的 WordPress 主站是 ephrain.net,另外有一個旅遊的副站 travel.ephrain.net,

因此我就是新增 travel.ephrain.net 網域,但 ephrain.net 網域一樣可以寄信:

 

3. 在 DNS 中加上 Mailgun 的驗證資訊

接下來是最麻煩的地方…

剛剛在第二步加入網域後,下面就會秀出一堆要加到 DNS 的資訊,例如:

 

我的網域名稱是向 Google Domains 註冊的,

因此就到 Google Domains > DNS > Custom resource records,來加入需要的資訊~

不過加入第一個 travel.ephrain.net 的 TXT 欄位就遇到問題,

說有名稱衝突 (Name conflict):

 

查了一下,原來有 CNAME (alias,別名) 的話,就不能再有同名的其他型態資料。

原本我用 CNAME 是希望如果 IP 有改的話,

我只要改 @ 對應的 IP 就好,不用再去改 travel 的 IP。

不過既然 CNAME 會導致其他型態的資料都不能加,只好改用 A 型態記錄 IP,

這樣子就能順利加上 TXT 型態資料了:

 

要求的資料全部加上的結果:

 

這時再回到 Mailgun 網頁,按下 Verification,

應該就能從 DNS 得到驗證資料,確認這個網域是我們所有的了~

 

Mailgun 這時會提供一個登入 SMTP 伺服器用的帳號密碼,

我們可以點 Manage SMTP credentials 來修改密碼:

 

這邊可以用 New SMTP Credential 來新增帳號,

或是點預設帳號 postmaster@<domain> 旁邊的工具圖示,就能修改密碼:

 

在 Mailgun 網頁,可以看到我們驗證成功的網域,

代表我們現在可以從這網域,透過 Mailgun 每個月寄送最多一萬封信了:

 

4. 讓 WordPress 的信件透過 Mailgun 轉發

到 WordPress 後台 > 外掛區,安裝 Mailgun for WordPress:

 

接著到這外掛的 Settings,填入一些必要資訊,

像是註冊 Mailgun 時使用的網域名稱,而 API key 從 Mailgun 網站上可以查到:

 

這樣子就算設定完成了~

測試一下,隨便找一篇文章留言,

差不多在 20 秒內就有收到留言的通知信囉~

 

不過 Mailgun 的設定過程,整體複雜度頗高,

接下來會再試一下文件裡提到的 WP Mail SMTP 外掛,

看看能不能直接使用 Gmail 來寄信囉~

 

參考資料:

Bitnami: How To Configure Your Application To Use A Third-Party SMTP Service For Outgoing Email?

Adding both CNAME and TXT DNS records for one subdomain

(本頁面已被瀏覽過 1,488 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料