EC2で初期状態からメール送信できるまで設定していきます
最終的にphpでメール送信できるようにしたいためpostfixを使用します
目次
前提
・SES登録済
・メール上限申請済
・EC2構築済み
参考
SESの設定等は以下サイトを参照してみてください
・Amazon SES 東京リージョンの初期設定
・メール送信上限の緩和
postfixのインストール
まずはEC2にSSHログインしてpostfixをインストールします
自動起動も設定します(ここは任意で問題ないです)
$ sudo yum install postfix
$ sudo systemctl start postfix
$ sudo systemctl is-enabled postfix
main.cfの編集①
vim で開いて最終行に追記します
$ sudo vim /etc/postfix/main.cf
relayhostはSESのSMTP Settingsに記載してあります
25番ポートを使用するためには解除申請を提出が必要なので、今回は587番ポートを使用します
smtp_tls_note_starttls_offer = yes
smtp_tls_security_level = encrypt
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
relayhost = email-smtp.ap-northeast-1.amazonaws.com:587
smtp_sasl_auth_enable = yes
smtp_use_tls = yes
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
main.cfの編集②
myhostnameとmydomainも編集します
route53で取得したドメインと合わせましょう
myhostname = test.example.co.jp
mydomain = example.co.jp
sasl_passwdの作成
$ sudo vim /etc/postfix/sasl_passwd
sasl_passwdには、SESから取得したcredentials情報を記載します
email-smtp.ap-northeast-1.amazonaws.com:587 [Smtp Username]:[Smtp Password]
sasl_passwdのハッシュ化
sasl_passwdの作成が完了したらハッシュ化します
$ sudo postmap hash:/etc/postfix/sasl_passwd
$ ls -1 /etc/postfix/sasl_passwd*
認証情報が含まれているため、権限・所有者を変更します
$ sudo chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
$ sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
$ ls -l /etc/postfix/sasl_passwd*
postfixの再起動
設定が終わったら反映させるために再起動します
$ sudo postfix reload
$ sudo service postfix restart
メール送信確認
$ echo "mail-body" | mail -r 送信元 -s "mail-subject" 送信先
今回の設定例であれば以下になります
送信元のアドレスをmain.cfのmydomainと合わせないと送れないので注意しましょう
echo "mail-body" | mail -r support@example.co.jp -s "mail-subject" 送信先
メール送信ログの確認
メール送信ログは以下コマンドで確認できます
$ sudo less /var/log/maillog
以上です、お疲れ様でした