こんにちは。かじです。
WordPressをAWSのEC2やLightsailで単体ではメールを送ることはできません。単純にデフォルトでSMTPサーバーの機能がないからです。
SMTPサーバ用のソフトウェアをインストールすれば可能かと思いますが、それは手間がかかる上にセキュリティ的に推奨できることではありません。
公式ドキュメントでは、メール送信用のサービスであるAmazon SESの使用を推奨しております。
下記にLightsailインスタンスに構築したWordPressからメールを送る方法を記載いたします。
1.Amazon SESに送信用ドメインを登録する
まずはSESで送信するためのドメインを登録します。
Amazon SESにアクセスし、IDをクリックします。
続いてIDを選択をクリックします。
IDの詳細でIDタイプはドメインを選択し、使用するドメインを入力します。なお入力するドメインは自分が管理しているドメインを入力してください。
ドメインの検証では、IDタイプにEasy DKIMを選択し、DKIM署名キーの長さでは、「RSA_2048_BIT」を選択します。
DNSレコードのRoute53への発行は、ドメインのネームサーバとしてRoute53を使用している際は有効化にチェックを入れ、それ以外のネームサーバーを使用している際は、チェックを外します。
DKIM署名はチェックを入れ、「IDの作成」をクリックします。
IDが作成されたら発行されたDKIM用のレコードをネームサーバーに追加します。
2.SMTP認証用のIAMユーザーを作成する
続いて、SMTPの認証情報を作成します。
SMTPの設定を開き、SMTP認証ユーザーの作成を開きます。
特に変更する必要がなければそのまま、「ユーザーの作成」をクリックします。
ユーザーが作成できたらSMTPユーザー名とSMTPパスワードを控えておきます。
3.WordPressのプラグインの設定
まず、SMTP用のプラグインをインストールします。
外部のSMTPサーバーへ繋ぐためのプラグインであれば何でもいいですが、今回は「WP Mail SMTP by WPForm」を使用します。
デフォルトでインストールされているので、今回は「今すぐ更新」とします。インストールされていない場合は「インストール」とします。
インストール・更新ができたら有効化します。
WP Mail SMTPの設定画面があるので、「始めましょう→」をクリックします。
次にSMTPメーラーを選択する画面です。ここでは、「Amazon SES」もありますが、「Amazon SES」を選択するとプレミアムライセンスである必要があり、プレミアムライセンスである必要はないので、SMTPメーラーは「その他のSMTP」を選択し、「保存して続行」をクリックします。
続いてメーラーの設定になります。
「SMTP」ホストはSESの「SMTPの設定」の「SMTPエンドポイント」の値を入力します。
暗号化は「TLS」を選択し、SMTPポートは「587」を選択します。SMTPユーザー名とSMTPパスワードは、IAMユーザーを作成する際に控えたSMTPユーザー名とSMTPパスワードを入力します。
そこまで入力出来たら、「保存して続行」をクリックします。
次に有効にするメール機能を選択します。ここではデフォルトのままとしておき、「保存して続行」をクリックします。
連絡先のメールアドレスを入力します。ここでは、「この手順をスキップ」をクリックで大丈夫です。
WP Mail SMTP来仙キーを入力画面が表示されますが、こちらの画面も「この手順をスキップ」で大丈夫です。
以上でSESの設定が完了になります。
これでEC2やLightsailでメールの送信機能を利用することが可能になりました。
今回はここまでとなります。