AWSのAmazon SES(Simple Email Service)をpostfixから使う

AWS

 前回の記事でwordpressからSESでメール送信することを実施しましたが、うまいぼう先輩からpostfixで送信できるように情報まとめろって言われましたので、やってみることにしました。
 とりあえずは、wordpressに入れたplugin「WP Mail SMTP」を無効化して、ローカルのpostfix経由でメール送信するように変えました。以下postfixで設定する内容ですが、公式サイトにかなり丁寧に手順が書かれているのでそちらを参照しても早いと思います。

postfix設定

・configファイルの修正
 ※relayhostの部分はリージョンによって異なります

# vi /etc/postfix/main.cf
relayhost                    = [email-smtp.ap-northeast-1.amazonaws.com]:587
smtp_sasl_auth_enable        = yes
smtp_sasl_security_options   = noanonymous
smtp_sasl_password_maps      = hash:/etc/postfix/sasl_passwd
smtp_use_tls                 = yes
smtp_tls_security_level      = encrypt
smtp_tls_note_starttls_offer = yes
smtp_tls_CAfile              = /etc/ssl/certs/ca-bundle.crt

・認証情報の作成

# vi /etc/postfix/sasl_passwd
[email-smtp.ap-northeast-1.amazonaws.com]:587 USERNAME:USERPASSWORD
# chmod 600 /etc/postfix/sasl_passwd
# postmap hash:/etc/postfix/sasl_passwd

・サービス再起動(config再読み込み)

# systemctl reload postfix.service

動作確認

  1. from:認証済のアカウント/to:認証済のアカウントで試験
    • 問題無く配送されました
  2. from:非認証のアカウント/to:認証済のアカウントで試験
    • 問題無く配送されました
  3. from:非認証のアカウント/to:非認証のアカウントで試験
    • 拒否されました
【試験1コマンド】
# sendmail -f test@ninshouzumi.com test@ninshouzumi.com
From: SESテストアカウント <test@ninshouzumi.com>
Subject: Amazon SES Test 
This message was sent using Amazon SES.
.
【試験2コマンド】
# sendmail -f test@mydomain.com test@ninshouzumi.com
From: SESテストアカウント <test@mydomain.com>
Subject: Amazon SES Test 
This message was sent using Amazon SES.
.
【試験3コマンド】
# sendmail -f test@mydomain.com test@other.com
From: SESテストアカウント <test@mydomain.com>
Subject: Amazon SES Test 
This message was sent using Amazon SES.
.

 非認証のアカウントへの送信には制限解除が必要なようです。そちらはまたの機会に試してみます。bounceメールが多いと制限されて認証済メールも送信できなくなる可能性があるみたいなので注意です。

コメント