【画像付き手順解説】:
WordPressのメール送信をAWS SESで行う

はじめに

WordPressではユーザー登録やサイト追加なんかのタイミングでメール送信が必要になる場面がありますよね。

AWSでWordPressを構築している場合、AWS SESでメール送信したいと思うことがあると思います。

今回はAWS SESでメール送信の仕組みを構築し、WordPressで設定するまでの一連の流れを紹介します。

AWS SESの料金

まず気になるのは、やはり料金でしょう。

EC2でWordPressを構築している場合はなんとゼロ円。

LightsailなどEC2以外でWordPressを構築している場合は、14円程度かかると思っておけばいいでしょう。

今回はWordPressから管理ユーザー向けのメール送信を前提とするので、月に数通のメールを特定のメールアドレスのみに送信する想定です。

AWS SESの料金
(クリックすると画像が拡大されます。)

ひとまずあまりお金がかからないことがわかって安心です。

信頼性の高いメール送信

メール送信する際、スパムメールだと認識されないためには、「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の作成」をクリックします。

ドメイン・メールアドレスを登録(1/6)
(クリックすると画像が拡大されます。)

IDの作成画面では、IDタイプを「ドメイン」に選択し、ドメイン名を入力します。

ドメイン・メールアドレスを登録(2/6)
(クリックすると画像が拡大されます。)

ここでDKIMの設定について、ちょっと考慮が必要になります。
メールのドメインがRoute53で管理されているか否かで対応が変わる訳です。

  • メールのドメインがRoute53で管理されている場合
    • このまま設定を進めて大丈夫です。Route53に自動でCNAMEレコードが登録されます。
自動で登録されたCNAMEレコード
(クリックすると画像が拡大されます。)
  • メールのドメインがRoute53で管理されていない場合
    • 手動でCNAMEレコードの登録が必要です。以下のように登録するレコードを表示できるので、登録して先に進みます。
手動で登録するCNAMEレコード
(クリックすると画像が拡大されます。)

ここまで来たら、SESのコンソールに戻り、再び「検証済みID」タブから、先ほど作成したドメインのステータスが「検証済み」になっていることを確認します。

ドメイン・メールアドレスを登録(3/6)
(クリックすると画像が拡大されます。)

ここまでで、ドメイン自体は有効になったのですが、メール送信できるかテストする前にテストメール送信先のメールアドレスも登録する必要があります。

再度「検証済みID」タブの「IDの作成」をクリックします。

ドメイン・メールアドレスを登録(4/6)
(クリックすると画像が拡大されます。)

今度は「Eメールアドレス」を選択し、テストメールを送信したいEメールアドレスを登録します。

WordPressのメール送信でもそのまま利用できるメールアドレスになるので、管理者メールアドレスとして使用するものを設定するといいでしょう。

ドメイン・メールアドレスを登録(5/6)
(クリックすると画像が拡大されます。)

IDの作成」をクリックすると、設定したメールアドレス宛に、メールアドレス検証用メールが来ています。
メールにあるリンクをクリックすることで、SESにメールアドレスが登録され、メール送信先として使用できるようになります。

ドメイン・メールアドレスを登録(6/6)
(クリックすると画像が拡大されます。)

テストメールを送信

設定したドメインからテストメールを送ってみます。

SESコンソールの「検証済みID」タブから、ドメインをクリックします。右上に「テストEメールの送信」ボタンがあるのでクリックします。

テストメールの送信(1/2)
(クリックすると画像が拡大されます。)

テストメールの内容は以下のように入力しました。

テストメール
  • From-address :no-reply
  • シナリオ   :カスタム
  • カスタム受信者:先ほど登録したメールアドレス
  • 件名・本文  :任意に

テストEメールの送信」ボタンをクリックし、メールを受信できていればOKです。

テストメールの送信(2/2)
(クリックすると画像が拡大されます。)

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」を控えておきます。

SMTPユーザーの作成
(クリックすると画像が拡大されます。)

ここまで来たらAWSの設定は完了です。

後はWordPressでメール送信を設定していきます。

今回は「WP Mail SMTPプラグイン」を使ってメール送信を設定していきます。

WP Mail SMTPプラグインは最近だとWordPressにもともと入っていることも多いので、有効化すればそのまま使えますが、もしインストール済みプラグインリストになければ、新規追加して有効化してください。

WordPressの送信設定(1/3)
(クリックすると画像が拡大されます。)

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に登録したメールアドレス宛にメールを送ります。

無事メールが届けば、メール送信のための作業は完了です。

WordPressの送信設定(2/3)
(クリックすると画像が拡大されます。)

せっかくメールが送れるようになったので、管理者メールアドレスを設定しておきましょう。

設定」の「管理者メールアドレス」にSESに登録したメールアドレスを設定し、「変更を保存」ボタンを押すと確認メールが届くはずです。メールのリンクをクリックすると認証されて、管理者メールアドレスが登録できます。

WordPressの送信設定(3/3)
(クリックすると画像が拡大されます。)

おわりに

メール送信設定はWordPressを使用していると必要になってきますので、また必要になった時に記事を見てもらえたら嬉しく思います。

送信先メールアドレスを増やす場合は、SESにメールアドレスを登録することを忘れないように注意してくださいね。

Check Out! Recommended You
ハンズオンで学べるAWS

AWSをもっと知りたいという方に向けて「ハンズオンで学べるAWS」を提供しています。

興味のあるAWSサービスをハンズオンでぜひ試して触ってみてください。

Spread the love