はじめに
WordPressではユーザー登録やサイト追加なんかのタイミングでメール送信が必要になる場面がありますよね。
AWSでWordPressを構築している場合、AWS SESでメール送信したいと思うことがあると思います。
今回はAWS SESでメール送信の仕組みを構築し、WordPressで設定するまでの一連の流れを紹介します。
AWS SESの料金
まず気になるのは、やはり料金でしょう。
EC2でWordPressを構築している場合はなんとゼロ円。
LightsailなどEC2以外でWordPressを構築している場合は、14円程度かかると思っておけばいいでしょう。
今回はWordPressから管理ユーザー向けのメール送信を前提とするので、月に数通のメールを特定のメールアドレスのみに送信する想定です。
ひとまずあまりお金がかからないことがわかって安心です。
信頼性の高いメール送信
メール送信する際、スパムメールだと認識されないためには、「SPFレコードを登録」したり、「DKIMを設定」して信頼性を担保していきます。
AWS SESではこれらの信頼性を簡単に担保できます。
SPFレコード
SESを利用する場合、SPFレコードの登録は基本不要です。SESを使用していればSPFの認証は自動でクリアできます。
※ カスタムMAIL FROMドメインを使用する場合のみ必要になりますが、特に要件がなければ必要ないでしょう
参考:https://docs.aws.amazon.com/ja_jp/ses/latest/dg/send-email-authentication-spf.html
DKIM
SESの設定中に提示されるCNAMEレコードをドメインを所有するDNSに登録することでDKIMの設定が自動で完了できます。
AWS SESの設定
前置きが長くなりましたが、いよいよ構築手順です。
長いので畳んでいますので、それぞれの作業をクリックして開いて参照してください。
ドメイン・メールアドレスを登録
SESのコンソールを開き、「東京リージョン」になっているか確認します。
それから「検証済みID」タブを開き、「IDの作成」をクリックします。
IDの作成画面では、IDタイプを「ドメイン」に選択し、ドメイン名を入力します。
ここでDKIMの設定について、ちょっと考慮が必要になります。
メールのドメインがRoute53で管理されているか否かで対応が変わる訳です。
- メールのドメインがRoute53で管理されている場合
- このまま設定を進めて大丈夫です。Route53に自動でCNAMEレコードが登録されます。
- メールのドメインがRoute53で管理されていない場合
- 手動でCNAMEレコードの登録が必要です。以下のように登録するレコードを表示できるので、登録して先に進みます。
ここまで来たら、SESのコンソールに戻り、再び「検証済みID」タブから、先ほど作成したドメインのステータスが「検証済み」になっていることを確認します。
ここまでで、ドメイン自体は有効になったのですが、メール送信できるかテストする前にテストメール送信先のメールアドレスも登録する必要があります。
再度「検証済みID」タブの「IDの作成」をクリックします。
今度は「Eメールアドレス」を選択し、テストメールを送信したいEメールアドレスを登録します。
WordPressのメール送信でもそのまま利用できるメールアドレスになるので、管理者メールアドレスとして使用するものを設定するといいでしょう。
「IDの作成」をクリックすると、設定したメールアドレス宛に、メールアドレス検証用メールが来ています。
メールにあるリンクをクリックすることで、SESにメールアドレスが登録され、メール送信先として使用できるようになります。
テストメールを送信
設定したドメインからテストメールを送ってみます。
SESコンソールの「検証済みID」タブから、ドメインをクリックします。右上に「テストEメールの送信」ボタンがあるのでクリックします。
テストメールの内容は以下のように入力しました。
- From-address :no-reply
- シナリオ :カスタム
- カスタム受信者:先ほど登録したメールアドレス
- 件名・本文 :任意に
「テストEメールの送信」ボタンをクリックし、メールを受信できていればOKです。
AWS CLIを使える方は、以下のコマンドを入力すれば、テストメールを送信できます。
$ aws --region ap-northeast-1 ses send-email --to 【送信先メールアドレス】 --from 【送信元メールアドレス】 --subject "SESテストメール" --text "SESのテストメールです。"
SMTPを設定
WordPressでSESを使うには、SMTPを設定しておく必要があります。
SESコンソールの「SMTP設定」から「SMTP認証情報の作成」をクリックし、ユーザーを「作成」して「認証情報のダウンロード」をクリックします。CSVファイルがダウンロードされますので、そこに記載されている「Smtp User」と「Smtp Password」を控えておきます。
ここまで来たらAWSの設定は完了です。
後はWordPressでメール送信を設定していきます。
今回は「WP Mail SMTPプラグイン」を使ってメール送信を設定していきます。
WP Mail SMTPプラグインは最近だとWordPressにもともと入っていることも多いので、有効化すればそのまま使えますが、もしインストール済みプラグインリストになければ、新規追加して有効化してください。
WP Mail SMTPプラグインの設定項目はそれぞれ以下を設定します。
項目 | 設定内容 | 設定例 |
---|---|---|
送信元メールアドレス | 【任意】@【SESで登録したドメイン名】 | wordpress@goods.wellknowledge.org |
フォーム名 | 【任意】 | WordPress |
メーラー | その他のSMTP | |
SMTPホスト | email-smtp.ap-northeast-1.amazonaws.com | |
暗号化 | TLS | |
SMTPポート | 587 | |
認証 | オン | |
SMTP ユーザー名 | 【先ほどメモしたsmtp user】 | AKIXXXYYYYZZZZ |
SMTP パスワード | 【先ほどメモしたsmtp password】 | XXXXXXXYYYYYZZZZZ |
メーラーはAmazon SESという項目もありますが、プラグインの有料版で使用できるみたいです。
Amazon SESという項目が選択できなくても、メール送信できますので安心してください。
SMTPホスト(URL)は東京リージョン以外の場合は、以下から確認できます。 https://docs.aws.amazon.com/general/latest/gr/ses.html
設定出来たら、テストメールを送ってみます。
WP Mail SMTPプラグインの設定画面から「テストメール」を選択し、SESに登録したメールアドレス宛にメールを送ります。
無事メールが届けば、メール送信のための作業は完了です。
せっかくメールが送れるようになったので、管理者メールアドレスを設定しておきましょう。
「設定」の「管理者メールアドレス」にSESに登録したメールアドレスを設定し、「変更を保存」ボタンを押すと確認メールが届くはずです。メールのリンクをクリックすると認証されて、管理者メールアドレスが登録できます。
おわりに
メール送信設定はWordPressを使用していると必要になってきますので、また必要になった時に記事を見てもらえたら嬉しく思います。
送信先メールアドレスを増やす場合は、SESにメールアドレスを登録することを忘れないように注意してくださいね。