使用 Mailgun 傳送電子郵件

Mailgun 是一種第三方電子郵件服務,Compute Engine 使用者每月可使用此服務免費傳送 10,000 封電子郵件。MailGun 亦提供程式輔助 API、記錄保留、電子郵件個人化、分析、電子郵件驗證等各種服務。

若要註冊和使用 Mailgun,請按照以下操作說明。

事前準備

  1. 前往 Mailgun 的 Google 合作夥伴頁面* 建立新的 Mailgun 帳戶。Compute Engine 使用者每月傳送的前 30,000 封電子郵件完全免費。如要進一步瞭解額外電子郵件的定價和大量寄件的折扣,請查看 Mailgun 每月定價計算機

  2. 取得您的憑證。在操作說明中,會請您記下 Mailgun SMTP 使用者名稱、密碼和主機名稱。您可以在 Mailgun 控制台的「Domains」(網域) 部分下方,取得您的使用者名稱和密碼。

    Mailgun SMTP 主機名稱為 smtp.mailgun.org

透過 Postfix 轉發

將 Mailgun 設為郵件轉發,即可讓 Postfix 轉寄用於遠端遞送的電子郵件。

  1. 使用安全殼層 (SSH) 連線至您的執行個體。

    gcloud compute ssh INSTANCE
    
  2. 成為超級使用者並設定安全的 umask。

    user@test-instance:~$ sudo su -
    
    root@test-instance:~# umask 077
    
  3. 安裝 Postfix 郵件傳輸代理程式。系統出現提示時,請接受預設選擇的網域名稱,但選取 Local Only 設定。

    Debian


    root@test-instance:~# apt-get update && apt-get install postfix libsasl2-modules -y
    

    CentOS


    root@test-instance:~# yum install postfix cyrus-sasl-plain cyrus-sasl-md5 -y
    

  4. 修改 Postfix 設定選項。Postfix 設定選項可於 main.cf 檔案中設定。請以您選擇的文字編輯器開啟該檔案。

    root@test-instance:~# vi /etc/postfix/main.cf
    
  5. 如果設定選項已存在,請加註下列幾行。

    # default_transport = error
    # relay_transport = error
    
  6. 在檔案結尾處加入下列一行,以新增 Mailgun SMTP 服務。

    relayhost = [smtp.mailgun.org]:2525
    
  7. 接著,加入下列幾行,針對以下要求強制執行安全資料傳輸層 (SSL)/傳輸層安全標準 (TLS) 支援,並設定 STMP 驗證。簡單存取及安全性階層 (SASL) 模組可處理 Postfix 設定中的驗證作業。請在檔案結尾處加入下列幾行:

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

    儲存變更並關閉檔案。

  8. 產生 SASL 密碼對應。

    1. 建立準備供標準輸入使用的新密碼檔案。

      root@test-instance:~# cat > /etc/postfix/sasl_passwd << EOF
      
    2. 在提示字元視窗中輸入服務的詳細資料,將 YOUR_SMTP_LOGINYOUR_SMTP_PASSWORD 替換為您的憑證。

      > [smtp.mailgun.org]:2525 YOUR_SMTP_LOGIN:YOUR_SMTP_PASSWORD
      
    3. 輸入分隔符號 EOF,關閉和儲存檔案。

      > EOF
      
  9. 使用 postmap 公用程式產生 .db 檔案。

    root@test-instance:~# postmap /etc/postfix/sasl_passwd
    
    root@test-instance:~# ls -l /etc/postfix/sasl_passwd*
    
    -rw------- 1 root root    68 Jun  1 10:50 /etc/postfix/sasl_passwd
    -rw------- 1 root root 12288 Jun  1 10:51 /etc/postfix/sasl_passwd.db
    
  10. 接下來請移除內有憑證的檔案,現在已不需要該檔案。

    root@test-instance:~# rm /etc/postfix/sasl_passwd
    
  11. 設定 .db 檔案的權限。

    root@test-instance:~# chmod 600 /etc/postfix/sasl_passwd.db
    
    root@test-instance:~# ls -la /etc/postfix/sasl_passwd.db
    
    -rw------- 1 root root 12288 Aug 31 18:51 /etc/postfix/sasl_passwd.db
    
  12. 最後請重新載入設定,以載入修改後的參數。

    Debian


    root@test-wheezy:~# /etc/init.d/postfix restart
    

    CentOS


    [root@test-centos ~]# postfix reload
    

  13. 測試您的設定。請安裝 mailxmailutils 套件,並測試設定。

    Debian


    root@test-wheezy:~# apt-get install mailutils -y
    

    CentOS


    [root@test-centos ~]# yum install mailx -y
    

    傳送測試電子郵件

    root@test-instance:~# echo 'Test passed.' | mail -s Test-Email EMAIL@EXAMPLE.COM
    

    請在系統記錄中查看內含 status 的狀態行,以及成功的伺服器回應碼 (250)

    Debian


    root@test-wheezy:~# tail -n 5 /var/log/syslog
    

    CentOS


    [root@test-centos ~]# tail -n 5 /var/log/maillog
    

如需其他主題的詳細範例和資訊 (包括電子郵件的追蹤和轉送),請參閱 Mailgun 文件

Mailgun SMTP 設定

以下是針對 Mailgun SMTP 設定的快速參考資訊,用於設定用戶端:

  • 主機:smtp.mailgun.org
  • 通訊埠:2525

* 若客戶註冊非免費帳戶,Google 將獲得額外補償。

歡迎自行試用其他 Google Cloud Platform 功能。請參考我們的教學課程

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Compute Engine 說明文件