Google Cloud は Mailgun と連携してメールサービスを提供しています。このサービスには、プログラムによる API、ログの保持、メールのカスタマイズ、分析、メールの検証が含まれています。
次の手順では、Postfix でメールリレーとして Mailgun を構成する方法について説明します。
始める前に
- Google Cloud Marketplace に登録して、新しい Mailgun アカウントを作成します。 
- 認証情報を取得します。この手順では、Mailgun SMTP ユーザー名、パスワード、ホスト名を把握している必要があります。Mailgun コントロール パネルの [Domains] セクションで、ユーザー名とパスワードを取得します。 - Mailgun でドメインを構成した方法に応じて、SMTP ホスト名は - smtp.mailgun.orgと- smtp.eu.mailgun.orgのいずれかになります。
- TCP ポート - 2525で送信トラフィックを許可するようにファイアウォール ルールを構成します。
Postfix でメールリレーとして Mailgun を構成する
Mailgun をメールリレーとして構成すると、リモート配信が指定されたメールを Postfix メール転送エージェントで転送できます。
- SSH を使用してインスタンスに接続します。 - gcloud compute ssh [INSTANCE_NAME]- [INSTANCE_NAME]は、メールの送信元となる VM インスタンスの名前です。
- スーパーユーザーになり、安全な umask を設定します。 - user@test-instance:~$ sudo su -- root@test-instance:~# umask 077
- Postfix Mail Transport Agent をインストールします。 - Debian- root@test-instance:~# apt update && apt -y install postfix libsasl2-modules- CentOS- root@test-instance:~# yum install postfix cyrus-sasl-plain cyrus-sasl-md5 -y
- プロンプトが表示されたら、 - Local Onlyの構成を選択し、ドメイン名についてはデフォルトの選択のままにします。
- Postfix の構成オプションを変更します。Postfix の構成オプションは - main.cfファイルで設定されています。任意のテキスト エディタでこのファイルを開きます。- root@test-instance:~# vi /etc/postfix/main.cf
- 次の行が存在する場合は、これらの行をコメントアウトします。 - # default_transport = error # relay_transport = error
- 次の行をファイルの末尾に追加して、Mailgun SMTP サービスを追加します。 - relayhost = [smtp.mailgun.org]:2525
- これらのリクエストに SSL / TLS サポートを適用し、SMTP 認証を構成するには、次の行をファイルの末尾に追加します。この Postfix の構成では、SASL(Simple Access and Security Layer)モジュールによって認証が処理されます。 - smtp_tls_security_level = encrypt smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous
- 変更を保存し、ファイルを閉じます。 
- SASL パスワード マップを生成します。 - 標準入力に対応した新しいパスワード ファイルを作成します。 - root@test-instance:~# cat > /etc/postfix/sasl_passwd << EOF
- プロンプトが表示されたら、サービスの詳細を入力します。 - YOUR_SMTP_LOGINと- YOUR_SMTP_PASSWORDは実際の認証情報に置き換えます。ドメインごとの認証情報を表示または変更する方法については、Mailgun のヘルプをご覧ください。- > [smtp.mailgun.org]:2525 YOUR_SMTP_LOGIN:YOUR_SMTP_PASSWORD
- 区切り文字 - EOF入力してファイルを閉じ、保存します。- > EOF
 
- 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 
- 認証情報を含むファイルは不要となったため、このファイルを削除します。 - root@test-instance:~# rm /etc/postfix/sasl_passwd
- .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 
- 最後に、構成を再読み込みして、変更したパラメータを読み込みます。 - Debian- root@test-wheezy:~# /etc/init.d/postfix restart- CentOS- [root@test-centos ~]# postfix reload
- 構成をテストします。 - mailxまたは- mailutilsパッケージをインストールし、構成をテストします。- Debian- root@test-wheezy:~# apt -y install mailutils- 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 のドキュメントをご覧ください。
Google Cloud に関するリファレンス アーキテクチャ、図、ベスト プラクティスを確認する。Cloud アーキテクチャ センターをご覧ください。