GCP 電商網站架設教學 :教你如何用 SendGrid 為你的網站發信!

Yen Chen
Yen Chen
Published in
5 min readApr 23, 2020

SendGrid 是什麼?為何要使用它?

一個電商購物網站免不了的就是有一堆信件通知信要寄送,不管是會員註冊信、訂單成立信、優惠通知信 …等,都需要一個郵件伺服器來幫你發送信件,而以GCP架站來說,GCP 的主機會阻擋 25. 465. 587 這幾個Port,因此一般網站常用的幾種寄信方式便不合適,但本次介紹的 SendGrid 可輕鬆解決這個問題,它是一個第三方郵件服務,主要採用 2525 port ,設定上相當容易,不僅可以省去自己架設及維護郵件伺服器的成本,每個月更是提供了 12,000 封信的額度讓你免費使用,下面教你如何一步一步申請並設定SendGrid 為你的網站發信:

一、登入GCP ,設定 SendGrid & 申請帳號

登入你的 GCP 帳號,至搜尋框輸入”sengrid email”,可看到” SendGrid Email API” 這個項目,點選它

進入「SendGrid Email API」頁面後,直接點選「開始使用免費方案」

接著選擇使用的方案,這裡使用 Free 免費方案,每月最多可免費寄送 12,000 封信件

再來要註冊 SendGrid 帳號,點選 “註冊「SendGrid」”的按鈕

開始註冊帳號,填入相關欄位資訊後送出。

而這裡填寫的 Username 及 Password 會當作網站發信用的帳密,請務必記住。

送出後回到後台,即可看已訂閱「Free」方案

二、SSH 連線主機,設定 Postfix

  1. 以 SSH 連線進入主機

輸入以下指令進行安裝套件及設定

sudo umask 077

sudo yum install cyrus-sasl-plain cyrus-sasl-md5 mailx -y

編輯 /etc/postfix/main.cf 文件,至文件最底部,貼上以下設定值,並儲存

sudo vi /etc/postfix/main.cf

貼上以下設定值:

relayhost = [smtp.sendgrid.net]:2525

smtp_tls_security_level = encrypt

smtp_sasl_auth_enable = yes

smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

header_size_limit = 4096000

smtp_sasl_security_options = noanonymous

輸入以下指令,建立發信的帳號密碼檔,USERNAME 填入剛註冊的帳號 (注意是username,不是信箱),PASSWORD 填入註冊密碼

sudo echo [smtp.sendgrid.net]:2525 USERNAME:PASSWORD >> /etc/postfix/sasl_passwd

輸入以下指令,將上面建立好的檔案,轉成db格式

sudo postmap /etc/postfix/sasl_passwd

輸入以下指令,確認是否有產生.db的檔案

sudo ls -l /etc/postfix/sasl_passwd.db

確認建立好後刪除先前的帳號密碼檔

sudo rm-rf /etc/postfix/sasl_passwd

輸入指令,重啟 postfix,若無錯誤訊息則表示設置成功

sudo postfix reload

三、測試發信

輸入下面指令測試發信,youremail@example.com 填入你的信箱,若有收到主旨為”Test-Email”,內容為”Message”的信件,即表示設定成功!

echo ‘Message.’ | mail -s Test-Email youremail@example.com

也可使用程式來發信,設定資訊如下:

SMTP

Host: smtp.sendgrid.net

Port: 2525

Username: 註冊帳號 (非註冊信箱)

Password: 註冊密碼

結論

這樣操作下來是不是方便申請也容易設定呢!但要注意的是,若你的每月發信量超過 12,000 封,那可能就不適合免費方案,若是超出額度將會無法寄信,如有疑問或是想更了解 SendGrid 的話可到他們官網查詢它的相關文件!

參考文獻

https://sendgrid.com/

https://digital-transformation.media/google-cloud-platform/compute-engine-send-email-use-sendgrid/

文章轉載自:https://www.codepulse.com.tw/zh-tw/gcp-電商網站架設教學-教你如何用-sendgrid-為你的網站發信

--

--