当ブログ環境でも使用しているLightsail環境からAmazon SESを使用してメールを送信する方法です!
WordPressであればGoogleアカウント経由で送信など簡単に出来ますが、せっかくなのでAmazon SES経由で送信を行う構成を構築してみました。
Lightsailのインスタンス自体にメールサーバを建てることも可能ですが、踏み台のリスクなどセキュリティ面で考慮しないといけないことが増えるのでAmazon SESなどのサービスを使うのをおすすめします!
LightsailでのWordPress構築方法は以下の記事からご覧いただけます。
[nlink url=”https://www.ikura-oisii.com/?p=11″]前提条件
- 独自ドメイン環境
- ドメインはRoute53またはLightsailメニュー内で管理
- メール受信はせず、送信だけを行う
- 特定のメールアドレスへお問い合わせ内容を送信する
ドメインは外部管理でも設定は可能です。(レコードを手動で登録する必要はありますが)
不特定多数のメールアドレスに送信する場合は別途除外申請が必要です。
設定の概要
Lightsail+WordPress環境からAmazon SES経由でメールを送信する設定方法
設定はAmazon Lightsail の WordPress で E メール を有効にするを参考にしました。
Amazon SESのドメイン認証
AWSマネージドコンソールからSESのサービスを検索してください。
東京リージョンはSESが利用できませんので、利用可能なリージョンをご選択ください。
Lightsailが東京リージョンでも問題ございません。
SESの左ナビゲーションから「Domains」→「Verify a New Domain」を選択します。
Domainに送信元ドメインを入力し、「Generate DKIM Settings」にチェックを入れてから「Verify This Domain」を選択します。
ドメインの所有を確認する為のレコードを登録します。Route53またはLightsailでドメイン管理をしていない方は手動でTXTレコードとCNAMEを登録してください。
Route53の方は「Use Route 53」を選択します。
メールを受信する必要がありませんのでMXレコードは登録しておりません。
受信を行う方はご登録ください。
レコード登録画面が表示されます。
予めドメイン認証用、DKIM用レコード、ホストゾーンの登録確認にチェックが付いておりますので、3箇所にチェックがついていれば「Create Record Sets」を選択します。
Route53でドメインを管理していれば数分で認証が完了します。
Route53からもレコード登録が確認出来ました。
Amazon SESのメールアドレス認証
不正使用、悪用防止の観点からデフォルトでは認証したメールアドレスへしかメールを送信出来ません。
不特定多数への送信を行うには Amazon SES サンドボックス外への移動 をご参照ください。
本手順では特定メールアドレスへ送信を行う為の手順です。
SESのメニューから「Email Addresses」→「Verify a New Email Address」を選択します。
メールを送りたいアドレスを入力し、「Verify This Email Address」を選択します。
gmailアドレスを登録してみました!
アドレス確認のリンクが届きますので、該当のリンクを選択して認証を完了してください。
リンクを選択すると以下の画面が表示されます。
以下画面が表示されれば認証完了です。
SESでも認証完了の画面となりました。
送信元、送信先の認証が終わりましたので、テスト送信を行います。
送信元のドメインをチェックし、「Send a Test Email」を選択します。
以下画像・例を参考にパラメータを入力して「Send Test Email」を選択します。
Email Format:Formatted
From*:送信元アドレス(何でもOKです)
To*:前項で認証を行ったアドレス
Subject*:メールの題名(何でもOKです)
Body:メール本文(何でもOKです)
問題なくメールのテスト受信が出来ました。
IAMユーザの作成
SMTP認証を行う為のIAMアカウントを作成します。
SESメニューの「SMTP Settings」→「Create My SMTP Credentials」を選択します。
サーバ名などは後ほど使用します。
IAMユーザの作成画面が表示されますので、「作成」を選択します。
「ユーザーのSMTPセキュリティ認証情報を表示」を選択してください。
認証情報が表示されますので、ユーザー名とパスワードを控えてください。
csvのダウンロードしてもOKです。
以上でAmazon SES側の準備は完了です。
WordPressのプラグインインストール
続いてWordPress側の準備です。
「プラグイン」→「WP Mail SMTP」と検索→「WP Mail SMTP by WPForms」をインストールしてください。
インストールが完了しましたら「設定」を選択します。
メール送信設定
メールの設定項目は、以下画像・例を参考にパラメータを入力してください。
送信元アドレス:認証を行ったドメインのメールアドレス(@以前は任意の文字列)
Force From Email:チェック
送信者名:任意の名前
Force From Name:チェック
メーラーは「Other SMTP」を選択し、SMTPにはAmazon SES内の「SMTP Settings」に記載のサーバ名を入力します。
暗号化は「TLS」を選択します。
メーラー:Other SMTP
SMTPホスト:Amazon SES指定のメールサーバ(リージョンにより異なります)
暗号化:TLS
SMTPのユーザ名とSMTPパスワードはIAMユーザ作成時に控えた内容です。
控えた内容が消えたら再作成してください。
SMTPポート:587
認証:ON
SMTP Username:控えたユーザ名
SMTP Password:控えたパスワード
すべて入力が終わりましたら「設定を保存」を選択します。
正常にメールが遅れるかテストします。
「Email Test」を選択して宛先に認証を行ったメールアドレスを入力、「Send Email」を選択します。
正常にテストメールが送信されましたら以下のメールが届いております。
あとはお問い合わせメールが受信できるように管理者ユーザーのメールアドレスなどを認証したメールアドレスに変更しておきます。
試しにお問い合わせフォームからメールをしてみます。
正常に認証したメールアドレスに届いておりました。
以上でLightsail+WordPress環境からAmazon SES経由でメールを送信する設定方法は完了です。
正直プラグインを入れてgoogleアカウントなどを利用してメール送信する方が簡単ですぐに出来ますが、Amazon SESを使ったことが無い方は慣れる意味を込めて是非試していただきたいです。
またMXレコード登録→メール受信の方法なども記事にしたいと思います。
良記事ありがとうございます。Lightsail x Ubuntu20.4 x WordPress 環境で、メールサーバーを建てようか迷っているときにこの記事に出会いました。記事の内容は完璧で問題なくメールの送信ができるようになりました。SES を利用して正解でしたね。
私の環境(Mac のメール -> Chrome)では、メールアドレスの認証の時に、メールのリンクをクリックしても「ログインしてください。」と表示ができるだけで「検証しました。」は表示されませんでした。しかし、メールアドレスは verified になりましたから問題なしです。
厚かましいお願いですが、ぜひメール受信の方も記事にしていただければ助かります。@gmail.com ばかり使っていますが、独自ドメインのメールアドレスも持ってみたいです。よろしくお願いいたします。