Mailgun でのメールの送信

Mailgun は、毎月最大 10,000 件の無料メールを Compute Engine ユーザーに提供するサードパーティのメールサービスです。また、MailGun ではプログラム API、ログの保持、メールのカスタマイズ、解析、メールの検証なども提供しています。

Mailgun に登録して使用する手順は次のとおりです。

始める前に

  1. Mailgun の Google パートナー ページ* で新しい Mailgun アカウントを作成します。Compute Engine ユーザーは、毎月 3 万メッセージまで無料です。それ以上のメッセージに対する料金やボリューム ディスカウントについては、Mailgun の月額料金計算ツールで算出してください。

  2. 認証情報を取得します。この手順では、Mailgun SMTP ユーザー名、パスワード、ホスト名を把握している必要があります。Mailgun コントロール パネルの [Domains] セクションで、ユーザー名とパスワードを取得します。

    Mailgun SMTP ホスト名は smtp.mailgun.org です。

  3. TCP ポート 2525 で送信トラフィックを許可するようにファイアウォール ルールを構成します。

* Google は、有料のアカウントに登録するお客様について、正当な対価を受け取ります。

Postfix でメールリレーとして Mailgun を構成する

Mailgun をメールリレーとして構成すると、リモート配信が指定されたメールを Postfix メール転送エージェントで転送できます。

  1. SSH を使用してインスタンスに接続します。

    gcloud compute ssh [INSTANCE_NAME]
    

    [INSTANCE_NAME] は、メールの送信元となる VM インスタンスの名前です。

  2. スーパーユーザーになり、安全な umask を設定します。

    user@test-instance:~$ sudo su -
    
    root@test-instance:~# umask 077
    
  3. Postfix Mail Transport Agent をインストールします。プロンプトが表示されたら、ドメイン名についてはデフォルトの選択を受け入れますが、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(Simple Access and Security Layer)モジュールによって、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. 構成をテストします。mailx または mailutils パッケージをインストールし、構成をテストします。

    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 Cloud Platform のその他の機能を試す。チュートリアルをご覧ください。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Compute Engine ドキュメント