如何在 CyberPanel 上設定 SendGrid SMTP

SendGrid 是一項雲端 SMTP 服務,讓你無需管理電郵伺服器即可發送電郵。

注意: 25 號埠預設關閉於我們的虛擬機器上連線(預設)。如需開啟 25 號埠,請購買 Mail Bridge 並進行設定Starlight™ Manager內。

如要於 WHM 設定 SendGrid 電郵,請參考此指南

請依照以下步驟,於 CyberPanel 端為你的網域名稱設定 SendGrid 服務及電郵系統:

1. 註冊 SendGrid:

填妥所有聯絡資料後,點擊「繼續」。

2. 你將被重新導向至新分頁以驗證你的電郵帳戶。複製發送到你電郵帳戶的驗證碼,輸入於「驗證碼」欄位並點擊「驗證」:

3. 輸入發送到你手機的驗證碼於「輸入認證碼」欄位並點擊「驗證」以驗證你的電話號碼:

4. 然後,你會獲得一組復原碼,於遺失手機或無法存取驗證裝置時可用。請複製並儲存該碼,然後點擊「繼續」。你亦可選擇將該碼下載為檔案:

5. 於下一頁填寫聯絡資料並點擊「下一步」:


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

7. 到達後,前往「設定」>>「API 金鑰」選單以建立新的 API 金鑰:


8. 在開啟的選單中,輸入 API 金鑰名稱,將 API 金鑰權限設為「完全存取」選項,並儲存設定:

9. 設定 SendGrid 寄件人認證。有兩種方式:

方法一:單一寄件人驗證

單一寄件人驗證-這是一種快速驗證方法,允許在使用 SendGrid 帳戶時新增授權收件人(單一或多個電郵地址)。例如,若你想從已加入 cPanel 伺服器的 john.doe@example.com 發送電郵至 jane.doe@gmail.com,則需將 jane.doe@gmail.com 加入 SendGrid 的單一寄件人驗證。

注意:單一寄件人驗證僅建議用於測試。

注意:你只能從已驗證的地址發送電郵,而非任何已認證網域的地址。

要設定單一寄件人驗證,請從 SendGrid 控制台前往「設定」>>「寄件人認證」選單 >> 點擊「驗證單一寄件人」按鈕:

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

之後,你會收到來自 SendGrid 的驗證電郵。要確認新增電郵地址,請於電郵中點擊「驗證單一寄件人」按鈕:

方法二:網域認證(建議)

點擊「設定」>>前往「寄件人認證」選單 >> 在「網域認證」欄下,點擊「認證你的網域」:

於下一頁,根據第一及第二步的問題認證你的網域名稱,然後點擊「下一步」:

注意:於截圖中,我們選擇了第二題的「否」作答。不過,此回覆為選擇性。

之後,輸入所需的網域名稱,如有需要可設定其他選項,然後點擊「下一步」:

現在需要透過設定相應的 CNAME 及 TXT DNS 記錄來驗證網域名稱。

當網域的 DNS 記錄已建立後,於第二步勾選「我已新增這些記錄」方格並點擊下方的「驗證」以確認:

注意:DNS 記錄可能需 24-48 小時才會傳播。

10. 下一步是為 CyberPanel 伺服器設定 SMTP。

很可惜,CyberPanel 目前尚未為用戶提供專用的 SMTP 設定介面。SendGrid 必須經由 SSH 終端機設定。

  • 首先,以 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 = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_tls_security_level = encrypt
header_size_limit = 4096000
relayhost = [smtp.sendgrid.net]:587

  • 現在你需要於另一個檔案中指定你的認證資料(使用apikey作為用戶名稱,API 金鑰作為密碼)/etc/postfix/sasl_passwd(你可能需要自行建立):

echo “[smtp.sendgrid.net]:587 apikey:YOUR_SENDGRID_API_KEY> /etc/postfix/sasl_passwd

YOUR_SENDGRID_API_KEY 是你於第 8 步建立的金鑰。

  • 接著,請確保該檔案僅 root 可讀寫,並使用 postmap 指令更新 Postfix 的 hash 表以使用此新檔案:

sudo chmod 600 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd

  • 最後,重啟 Postfix:

systemctl restart postfix

  • 於伺服器安裝 SASL 插件:

apt-get install libsasl2-modules  # 適用於 Ubuntu
dnf install cyrus-sasl-plain      # 適用於 Almalinux/CloudLinux
yum install cyrus-sasl-plain       # 適用於 CentOS

另外,部分情況下需為 Dovecot 安裝 MySQL 驅動程式,以設定 MySQL 後端認證:

apt install dovecot-sqlite dovecot-mysql   # 適用於 Ubuntu
dnf install dovecot-mysql               # 適用於 Almalinux/CloudLinux
yum 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 發送測試電郵。

必須提供有效的電郵地址