EC2からメールを送信する場合、普通にmailコマンド等で送ろうとしても様々な制限がかかります。
AWS EC2メール送信制限にハマりそうになったので書く – ksakaの日記
Amazon EC2 Eメール送信ベストプラクティス | Developers.IO
そこで、AWSが提供するメール送信のアプリケーションサービスである、Amazon SES (Simple Email Service)を利用したいと思います。
SESであれば、SMTP25番ポート以外での送信に対応しているのでメール送信の事前申請が不要ですし、RBL対策も必要ありません。SPF/DKIMについても、Route 53の設定を自動生成する機能があり非常に簡単に対応することができるようです。
以下、SESの設定方法を記載します。
現時点では、TokyoリージョンではSESが提供されていないようなので、今回はUS West(Oregon)を選択します。
次に、SESで送信元となるメールアドレスをVerified Sendersに登録します。
※ SESがプロダクション環境でない場合は受信先メールも登録する必要があります。SESをプロダクション環境として登録する方法についての参考サイトは下部にて紹介します。
下記画面で送信元メールアドレスを記入し「Verify This Email Address」を押すと、このアドレス宛てに確認メールが送信されます。
送られてきたメールにある確認URLをクリックすると、下記のようにアドレスが承認された旨、メッセージが表示されます。
コンソール画面でも当該アドレスが認証された状態が確認できます。
次に、SMTP Settings メニューに移ると、SMTPサーバ名等の情報があるのでこれを記録しておきます。
「Create My SMTP Credentials」をクリックします。
SMTP CredentialsはIAMによって提供されていますので、IAMのユーザー名を指定します。このユーザーのIAMポリシーも確認します。
IAMのユーザーを作成すると以下のようにSMTPユーザーとパスワードが発行されます。
これで、SMTPサーバに接続して、ユーザー、パスワードを使ってメール送信ができます。
WordPress ですと、プラグインの「WP Mail SMTP」などでプログラムから直接SMTPサーバに接続してメールを送信することができます。(これについては別途紹介します)
今回参考にした記事:
SESのプロダクション環境への移行についての参考記事: