DX攻略部がリニューアルしました!

【WordPress】Amazon SES経由でのメール送信方法とは?WP SMTP Mailの初期設定をわかりやすく解説してみた。

こんにちは、DX攻略部のラムネです。

AWS上で「EC2」や「Lightsail」などのサービスを利用してWordPress環境を構築しようと思うと、どうしてもメールサーバーの存在もセットで考える必要があります。

Xserverなどのレンタルサーバーの場合は便利なものでメールサーバーもセットで付いていたりするわけですが、AWSのように一からWordPress環境を構築する場合はメールサーバーは別で構築するなり外部サービスを利用してメールを送信できるようにしなければなりません。

今回はそんなメールサーバーを構築する上で役に立つサービス「Amazon SES」を使用してWordPressからメール送信をできる手順を解説していきたいと思います。

ちなみに、前回の記事でSESの初期設定については解説済みですので、今回は前回の記事で解説した条件はすべて満たしている前提で、WordPressとSESの連携部分にピックアップして解説していきます。

関連記事

こんにちは、DX攻略部のラムネです。 今回この記事では、AWSのSES(Simple Email Service)でメールサーバーを一から構築する方法について解説していきます。 私がSESを初めて利用したときに意外とつまずいたポ[…]

もし前回の記事をまだ読まれていない方は、上記記事(前回の記事)を先にご覧になった上で本記事をご活用いただければ幸いです。

WordPressとSES連携の全体設計

本題に入る前に、WordPressとSES連携を行う上での全体像について簡単に解説しておきたいと思います。

端的にWordPressに必要なプラグイン(ソフト)をインストールをした上で、SESと連携を行い、メールを送信する際にSES経由で送信するといった流れになります。

具体的なユースケースとしては、お問い合わせフォームをContact Form7を活用して作っている場合のお問い合わせ完了メールやWordPressのパスワードリセット時のシステム通知系のメールは、すべてSES経由から配信されるようになります。

WordPressとSESの連携で事前準備しておくもの

WordPressとSESを連携する上で事前準備しておくものは主に2つあります。

  1. WordPress環境
  2. AWS SESの本番化(※サンドボックス状態の解除と初期設定が完了していること)

    ①については、わざわざ記載する必要もないかもしれませんが、サーバー上にデプロイされたWordPress環境は必須で必要なものとなります。

    ②については、事前にAWSのSESを本番利用できる状態にしておく必要があります。

    ここで言うところの「本番利用できる状態」とは、SESを構築してすぐの初期設定の段階では制限がかかった状態(サンドボックス状態)であるため、それをAWS側に申請しサンドボックス状態が解除されていることと、SESの初期設定が完了していることの2点がクリアされていることを指します。

    このあたりのSESを本番化するための手順については下記記事で詳しく解説しているため、まだSESの本番化が未完了の方は下記記事をご一読ください。

    関連記事

    こんにちは、DX攻略部のラムネです。 今回この記事では、AWSのSES(Simple Email Service)でメールサーバーを一から構築する方法について解説していきます。 私がSESを初めて利用したときに意外とつまずいたポ[…]

    SESを利用してWordPressでメール送信可能になるまでの手順・方法

    ここからはSESを利用してWordPressでメール送信が可能になるまでの手順を解説していきたいと思います。

    STEP1: WordPressプラグイン「WP Mail SMTP」のインストール・有効化

    WordPressには自分が必要な機能を個別にインストールできるプラグインという仕組みがありますが、今回は「WP Mail SMTP」というプラグインをインストールし、有効化します。

    インストール方法は簡単で、WordPressメニューから「プラグイン>新規追加」を選択し、検索で「WP Mail SMTP」と入力し、検索でヒットしたプラグインをインストールします。

    STEP2: AWS SESでSMTP認証情報を取得

    STEP2では、SMTPの認証情報を取得します。

    仮にこの認証の仕組みがないと、事実上、誰もが好きなドメインで勝手にメールを送信できてしまうため、メール送信を行うためにはSMTPというプロトコルを利用して送信するようになっています。

    さて本題に戻りますが、SMTP認証情報を取得するためには、AWSのコンソール画面からSESの管理画面へ進み、メニューから「SMTP設定」をクリックしSMTP作成画面へ移動してください。

    「SMTP認証情報の作成」からSMTPの認証情報を発行します。

    仕組み的な話をしておくと、これは裏でSESでメールを送信する用のIAMユーザーを新規で作成しています。

    そして、発行されたIAMユーザーには「アクセスキーID」と「シークレットキー」が発行され、それが後にSMTP認証で使用するIDとパスワードになってきます。

    余談ですが、仮に上記2つの認証情報が外部に漏れると、勝手にメールが送信されてしまうなどの問題に発展する可能性があるため、取得したSMTP認証情報(IAMユーザー情報)の管理・保存は徹底するようにしてください。

    STEP3: プラグインの初期設定

    STEP3では、プラグインの初期設定を行います。

    同じくWordPressメニューから「WP Mail SMTP>設定」を選択し、設定画面から下記項目を入力してください。

    基本設定
    設定項目 設定内容
    送信元メールアドレス SESで登録したドメイン又はメールアドレスを入力してください。
    ※ドメインを登録した場合は、@の前は基本的にどのような文字列でも問題なく動作するはずです。
    info@dx.business
    フォーム名 メールの送信元で表示される名前を表示してください。一般的には、そのサイトやサービスの代表的な名称が設定されることが多いです。 DX攻略部
    返信先 届いたメールに対し、返信ボタンを押した際に自動的にデフォルトでセットされる宛先のことです。基本的にはチェックを入れることを推奨します。
    メーラー SES経由で送信する場合は「その他のSMTP」を選択してください。 「その他のSMTP」

    「その他のSMTP」については下記の通り入力してください。

    その他のSMTP
    設定項目 設定内容
    SMTPホスト SESは各リージョン毎にSMTPエンドポイント(SMTPホスト)が異なり、「email-smtp.[リージョンID].amazonaws.com」という命名規則に従って入力してください。例えば、バージニア北部であれば「email-smtp.us-east-1.amazonaws.com」がSMTPホスト名になります。※詳しくはAWSの公式ドキュメントにも記載されています。
    暗号化 「TLS」を選択してください。
    SMTPポート 「587」を入力してください。
    SMTPユーザー名 AWSのSESでSMTP認証情報を発行する際に作成しIAMユーザーの「アクセスキーID」を入力してください。
    SMTPパスワード AWSのSESでSMTP認証情報を発行する際に作成しIAMユーザーの「シークレットキー」を入力してください。

    以上の設定が完了したら設定を保存して準備完了です。

    STEP4: メールの送信テストを実施

    最後に設定が正しく、正常にSES経由で送信されるかをテストしましょう。

    「WP Mail SMTP」のツールから「メールテスト」タブを選択し、送信先となる適当なメールアドレスを設定したら、「メールを送信」ボタンをクリックしましょう。

    正常に送信できていれば下記のような画面が表示され、指定した宛先にテストメールが届いているはずです。

    上記のテスト完了画面でSPFやDMARC関連のエラーや注意メッセージが出る場合があるかもしれませんが、基本的には正常にメールは届くかと思います。不特定多数のユーザー向けに大量のメール送信を検討している場合は、別途ドメイン(DNS)側で設定を施し、エラー解消することを推奨しますが、一旦本記事では解説せず、対策方法について別記事で解説したいと思います。

    まとめ

    ここまでWordPressのメール送信をSES経由で送信する方法について解説してきましたが、いかがだったでしょうか。

    非エンジニアである方でもわかりやすいよう解説したつもりではありますが、もしご不明点などあればコメントで質問を投げていただければ回答いたしますので、必要に応じてご活用ください。

    WordPressとSESの組み合わせは非常に良く使われる形ですので、1つのテンプレートとして覚えおくと、どこかの開発現場で役に立つかもしれません。