Google Compute Engine 是不允使用 25 / 465 / 587 端口對外連接,也就說 google 不允許使用 PHP mail() 來發送郵件,因為這些端口已被大量濫用亂發廣告郵件。
 
在 Google Cloud Platform 主機上,WordPress 的聯絡表單可以正常發送郵件,只能使用 google 信賴的第三方提供商以 SMTP 傳輸協定方式,如 SendGrid、Mailgun 或 Mailjet ,這樣可以確保主機的郵件不會誤判為圾垃郵件。
 
SendGrid、Mailgun 或 Mailjet 每個mail server 都有免費的email 額度,超過就要收錢了,而且註冊時就要使用信用卡
推薦用Mailgun, 每個月可以有10,000 免費的email 額度,不過也有限制每個小時只能寄送100個信件

MailGun註冊完後需要通過網域驗證,到 DNS 設定一些 TXT、dkim、CNAME、MX 紀錄就可以綁訂網域到 MainGun 上面
 
設定完後點進去你要設定的網域,看到 Domain Information ,把 Default SMTP Login 跟 Default Password 記起來,在主機上要需要設定SASL驗證
 
在Google Compute Engine 安裝 postfix 以及SASL驗證工具

接下來修改/etc/postfix/main.cf (修改前還是要先備份一下main.cf)

在main.cf最底下新增內容

接下來產生SASL 密碼 map

YOUR_SMTP_LOGIN 就是先前提到的Default SMTP Login
YOUR_SMTP_PASSWORD 就是先前提到的Default Password

用 postmap 方式生成一個 .db 文件

刪除密碼憑證

給予 .db 文件權限

重啟 postfix

寄一封信給自己測試是否成功

從mail log 確認信件是否寄出

如果看到類似內容,表示郵件寄信成功,也可以從Mailgun Log 確認郵件

如果信件無法寄出,先確認防火牆port 2525是否有打開

ERIC3050

Tags: , ,