SendGrid 是一項基於雲端的 SMTP 服務,讓你無需管理電郵伺服器即可傳送電郵。
注意:連接埠 25 預設為關閉,無法在我們的 VM 上連線使用。如果你想開啟連接埠 25,請購買 Mail Bridge,並在 進行設定VPS Manager 中。
如要在 WHM 上設定 SendGrid 電郵,請使用本指南。
請按照以下步驟,在 CyberPanel 端為你的網域名稱設定 SendGrid 服務和 Email System:
1. 註冊 SendGrid:

填妥所有聯絡資料後,點擊「Continue」。
2. 你會被重新導向至瀏覽器中的新分頁,以驗證你的電郵帳戶。複製傳送到你電郵帳戶的驗證碼,在「Code」欄位中輸入,然後點擊「Verify」:

3. 在「Enter certification code」欄位中輸入傳送到你手機的驗證碼,以驗證你的電話號碼,然後點擊「Verify」:

4. 接著,你會收到復原碼,當你遺失手機或無法存取驗證裝置時會很有幫助。請複製並儲存該代碼,然後點擊「Continue」。你亦可選擇將代碼下載為檔案:

5. 在下一頁填寫你的聯絡資料,然後點擊「Next」:

6. 在下一頁中,請開啟你的 SendGrid 控制台:

7. 到達後,前往「Settings」>>「API Keys」選單,在那裡建立新的 API Key:

8. 在開啟的選單中,輸入 API Key 名稱,將 API Key 權限設為「Full Access」選項,然後儲存設定:

9. 設定 SendGrid Sender Authentication。有兩種方法可以做到:
方法 1:Single Sender Verification
Single Sender Verification - 是一種快速驗證方法,讓你在使用 SendGrid 帳戶時可加入已授權的收件人(單一或多個電郵地址)。例如,如果你想從已新增至 cPanel 伺服器的 john.doe@example.com 傳送電郵至 jane.doe@gmail.com,即可使用此方法。為此,jane.doe@gmail.com 電郵地址應加入 Sendgrid 的 Single Sender Verification。
注意:Single Sender Verification 僅建議用於測試。
注意:你只能從已驗證的地址傳送,而不能從已驗證網域上的任何地址傳送。
若要設定 Single Sender Verification,請在你的 SendGrid 控制台前往「Settings」>>「Sender Authentication」選單 >> 點擊「Verify a Single Sender」按鈕:

在下一頁中,填寫聯絡資料以建立寄件者,然後點擊「Create」以儲存所有內容:

之後,你會收到來自 SendGrid 的驗證電郵。要確認新增該電郵地址,請點擊電郵中的「Verify Single Sender」按鈕:

方法 2:Domain Authentication(建議)
點擊「Settings」>> 前往「Sender Authentication」選單 >> 在「Domain Authentication」欄位下,點擊「Authenticate Your Domain」:

在下一頁中,回答第一步和第二步的問題以驗證你的網域名稱,然後點擊「Next」:

注意:在截圖中,我們為第二個問題選擇了「No」。不過,這個回覆是可選的。
之後,輸入所需的網域名稱,如有需要可設定其他附加選項,然後點擊「Next」:

現在,你需要透過設定相應的 CNAME 和 TXT DNS 記錄來驗證網域名稱。
為網域建立 DNS 記錄後,請在第 2 步勾選「I’ve added these records」方塊以確認已新增,然後點擊下方的「Verify」:

注意:DNS 記錄傳播可能需要長達 24-48 小時。
10. 下一步是為 CyberPanel 伺服器設定 SMTP 設定。
很遺憾,CyberPanel 目前尚未為使用者提供專用的 SMTP 設定介面。必須透過 SSH 終端機設定 SendGrid。
首先,請以 root 身分登入你的伺服器:
ssh root@SERVER_IP_ADDRESS -p PORT
其中 SERVER_IP_ADDRESS 是你的伺服器 IP 位址,而 PORT 是 SSH 連線連接埠(預設為 22022)
使用文字編輯器開啟 /etc/postfix/main.cf 檔案:
nano /etc/postfix/main.cf
或vi /etc/postfix/main.cf
將以下內容加入檔案底部:
smtp_sasl_auth_enable = yessmtp_sasl_password_maps = hash:/etc/postfix/sasl_passwdsmtp_sasl_security_options = noanonymoussmtp_sasl_tls_security_options = noanonymoussmtp_tls_security_level = encryptheader_size_limit = 4096000relayhost = [smtp.sendgrid.net]:587
現在你需要在獨立檔案 /etc/postfix/sasl_passwd 中指定你的憑證(使用 apikey 作為使用者名稱,API Key 作為密碼)(你可能需要建立此檔案):
echo “[smtp.sendgrid.net]:587 apikey:YOUR_SENDGRID_API_KEY” > /etc/postfix/sasl_passwd
其中 YOUR_SENDGRID_API_KEY 是你在第 8 步建立的金鑰。
接下來,請確保該檔案僅允許 root 擁有受限的讀寫權限,並使用 postmap 指令更新 Postfix 的雜湊表以使用這個新檔案:
sudo chmod 600 /etc/postfix/sasl_passwdsudo postmap /etc/postfix/sasl_passwd
最後,重新啟動 Postfix:
systemctl restart postfix
在你的伺服器上安裝 SASL 外掛程式:
apt-get install libsasl2-modules # 適用於 Ubuntudnf install cyrus-sasl-plain # 適用於 Almalinux/CloudLinuxyum install cyrus-sasl-plain # 適用於 CentOS
另外,某些執行個體可能需要 Dovecot 的 MySQL Driver,以設定用於驗證的 MySQL Backend:apt install dovecot-sqlite dovecot-mysql # 適用於 Ubuntudnf install dovecot-mysql # 適用於 Almalinux/CloudLinuxyum install dovecot-mysql # 適用於 CentOS
之後,重新啟動 Dovecot:
systemctl restart dovecot
現在,你可以測試電郵是否透過 SendGrid 轉送:
sendmail -f YOUR_LOCAL_EMAIL -v DESTINATION_EMAIL
其中 YOUR_LOCAL_EMAIL 是你在 CyberPanel 帳戶中建立的電郵帳戶,而 DESTINATION_EMAIL 是接收測試電郵的收件人電郵地址。
然後輸入你的訊息內容,並按 Ctrl+D 傳送。
或者,你也可以使用 CyberPanel 帳戶中的 Webmail,從那裡傳送測試電郵。