如何設置 Google Cloud Platform 發送電子郵件

·

Google Mail

Photo by Solen Feyissa on Unsplash

Google Compute Engine 是不允使用 25 / 465 / 587 端口對外連接,也就說 google 不允許使用 PHP mail() 來發送郵件,因為這些端口已被大量濫用亂發廣告郵件。

在 Google Cloud Platform 主機上,WordPress 的聯絡表單可以正常發送郵件,只能使用 google 信賴的第三方提供商以 SMTP 傳輸協定方式,如 SendGrid、Mailgun 或 Mailjet 商家,這樣可以確保主機的安全及減輕壓力,並不會誤判為圾垃郵件,保護你的 IP 信譽

SendGrid

https://sendgrid.com/

Mailgun

https://www.mailgun.com/google

Mailjet

https://www.mailjet.com/google

mailgun 發信

我是申請 mailgun 帳號,每個月有 10000 封郵件免費使用量,設定上不會太難。

在 GCP VM 電子郵件發送有兩種設置方式,一個是用 SSH 在主機裡設置,另一個是在 WordPress 中安裝 WP Mail SMTP by WPForms 外掛。

不管用哪個方法,都要先去 mailgun 申請帳號,把你的域名設置好,設置的方法,google 上有很多教學。

第一種方法

安裝 Postfix 郵件套件:

apt-get update && apt-get install postfix libsasl2-modules -y

編輯 main.cf 文件

vi /etc/postfix/main.cf

註釋掉以下 2 行

# default_transport = error
# relay_transport = error

在文件最下面添加 Mailgun SMTP 服務

relayhost = [smtp.mailgun.org]:2525

注意:必須使用 2525 port。

再添加以下的配置,強制 SSL / TLS 支持,並請求 STMP 認證。

smtp_tls_security_level = encrypt
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous

存檔 main.cf 文件並關閉

生成 SASL 密碼:
ps. 將 YOUR_SMTP_LOGIN:YOUR_SMTP_PASSWORD 改成你的 mailgum 的域名的 SMTP 帳號及密碼

cat > /etc/postfix/sasl_passwd << EOF
[smtp.mailgun.org]:2525 YOUR_SMTP_LOGIN:YOUR_SMTP_PASSWORD
EOF

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

postmap /etc/postfix/sasl_passwd
ls -l /etc/postfix/sasl_passwd*

刪除密碼憑證

rm /etc/postfix/sasl_passwd

給予 .db 文件權限

chmod 600 /etc/postfix/sasl_passwd.db
ls -la /etc/postfix/sasl_passwd.db
回應 -rw------- 1 root root 12288 Aug 31 18:51 /etc/postfix/sasl_passwd.db

重啟 postfix

/etc/init.d/postfix restart

測試上面的配置,寄一封信給自己

apt-get install mailutils -y
echo 'Test passed.' | mail -s Test-Email EMAIL@EXAMPLE.COM

用上面的配置,WordPress 安裝 Contact Form 7 外掛後,就可以正常發信了。

Google Cloud Platform 發送電子郵件教學系列文章:

1. 如何設置 Google Cloud Platform 發送電子郵件(2)

https://yungke.me/how-google-cloud-platform-sending-email-2/

2. 如何設置 Google Cloud Platform 發送電子郵件(3)

https://yungke.me/how-google-cloud-platform-sending-email-3/

hosted by kinsta

Comments

在〈如何設置 Google Cloud Platform 發送電子郵件〉中有 4 則留言

  1. 「Shawn」的個人頭像

    你好!请问这个教程是是解决GCP实例不能发邮件的问题吗?可是我按教程配置了,但搭在实例上的SSR依旧不能发送邮件。请问有什么方法可以结决这个问题吗?谢谢。

    1. 「yungke」的個人頭像

      這個教程你必須要先有 mailgun 帳號才行,申請 mailgun SMTP 發信,一個月 10000 封免費,記得要輸入信用卡才能激活。

發佈回覆給「Shawn」的留言 取消回覆

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

Hey, 想嘗試 Kinsta 主機嗎?

18748

Kinsta 高效能主機

wPowered Starter 方案

馬上訂購

18749
Your Mastodon Instance