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 アーキテクチャ センターをご覧ください。