Lightsailを作ってみる②～ Amazon SESの設定

# はじめに
前回以下の記事でLightsailの構築をしましたが、今回はその作成したLightsail内のWordPressの管理画面からメールが送付したいというとこからになります。
WordPressにメールの送信設定をしないといけないとのことで、今回はWordPressの管理画面から送付されるメールをAmazon SESを利用して送信するように設定してみました。
Lightsailから何かを設定するというよりはAmazon SESとWordPress関連の内容になります。

https://qiita.com/Shun_konno/items/b6461594de1cdd7caa87

# Amazon SES
https://docs.aws.amazon.com/ja_jp/ses/latest/dg/Welcome.html

AWSが提供しているメール送付サービス。
自分自身でEメール用のサーバーを作成やネットワークの構成管理をすることなく、Eメールの送信を行うことができる。
また、自分が所有しているドメインやメールアドレスを使用してEメールの送信を行うことができる。

# Amazon SESの設定
Amazon SESで送付元のドメインと送付先のアドレスを登録します。

:::note warn
事前準備として、Amazon SESの設定を行う前にRoute53でWordPressのURLに使用するドメインは別途取得しておく必要があります
:::

## IDの作成(送付元)
1．Amazon SESの画面から、「IDの作成」ボタンをクリックする。
![image⑤.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375141/5a62be4f-b08b-0b7f-44a5-220ff2ac087e.png)

2．以下の内容で画面上の項目を選択・入力し、「IDの作成」ボタンをクリックする。

- IDの詳細エリア

|No.| 設定項目 | 値 |
| ---- | ---- | ---- |
|1| IDタイプ |ドメイン |
|2| ドメイン |所有しているドメイン名 |
|3| デフォルト設定セットの割り当て |チェックなし|
|4| カスタム MAIL FROM ドメインの使用 |チェックなし|

![image⑥.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375141/a5c0dab5-9e8e-ba4e-e0e1-aec4749c1be4.png)


- ドメインの検証エリア
特に変更する必要はなく、基本はそのままでOK
![image⑦.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375141/a2dfaa14-7ab3-bffa-8089-80c5768b3e8e.png)



:::note warn
- SESに登録しようとしているドメインをRoute53で管理している場合は、Route53に自動でCNAMEレコードが作成される。
- ドメインをSESに登録しようとしている場合は、CNAMEを登録できることでドメインを所持していることを確認し、SESを使用できるかを検証している。
:::

なので、Route53でドメインを登録していない場合は、ちょっとだけ手間が増えます。

- タグエリア
なければそのまま、お好みでタグの設定を追加する。
![image⑧.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375141/5e62dc6a-d130-72c2-aef2-b96a149d0d92.png)


3．「検証済みID」に上で登録したドメインの「IDステータス」が「検証済み」になっていることを確認する。

これでWordPressからの送付元メールアドレスに使用するドメイン登録は完了です。

## IDの作成(送付先)

1．Amazon SESの画面から、「IDの作成」ボタンをクリックする。

2．以下の内容で画面上の項目を選択・入力し、「IDの作成」ボタンをクリックする。

|No.| 設定項目 | 値 |
| ---- | ---- | ---- |
|1| IDタイプ |Eメールアドレス |
|2| Eメールアドレス |WordPressからのメールを送付したいアドレス|
|3| デフォルト設定セットの割り当て |チェックなし|

![image⑨.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375141/f8594e6a-808c-8915-7f0c-bbdc7f7737ee.png)

- タグエリア
なければそのまま、お好みでタグの設定を追加する。

:::note warn
- メールアドレスを選択した場合は入力したメールアドレス宛に確認メールがAWSより届きます。メールのリンクをクリックすることで入力したメールアドレスを所持していることを確認する。
- メールのリンクを踏まないと検証済みにならないので注意する。
:::

3．「検証済みID」に上で登録したメールアドレスの「IDステータス」が「検証済み」になっていることを確認する。

これで送付先のメールアドレスの登録は完了

## メール送付テスト
ここまで来たら、メールの送付元であるドメインと送付先のメールアドレスが登録できていると思うので、テストメールが送付されるかテストしてみる。

1．検証済みIDの一覧から「ID」列のSESで登録したドメインのリンクをクリックする。

2．右上に「テストEメール送信」のボタンがあるのでクリックする。

3．以下の内容を入力し、「テストEメール送信」のボタンをクリックする。

|No.| 設定項目 | 値 |
| ---- | ---- | ---- |
|1| Eメール形式 |フォーマット済み |
|2| Fromアドレス |no-replay|
|3| シナリオ |カスタム|
|4| カスタム受信者 |※SESでWordPress送付用に登録したメールアドレス|
|5| 件名 |※テストメールに件名を任意入力|
|6| 本文 |※メールの本文を任意入力|
|7| 設定セット |選択なし|

:::note warn
件名と本文については空欄だと迷惑メールになる可能性があるので、できる限り入力したほうが良いと思います。
:::

入力されたアドレスにSESで設定したアドレスからメールが送付されればOKです。

## SMTP設定値のダウンロード

1. Amazon SESの横にある「SMTP設定」をクリックする。
![image⑩.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375141/dfbe4ee6-29c7-63f5-8b48-f92757307072.png)

2. 画面右の「SMTP認証情報の作成」ボタンをクリックする。
SMTP送付用のIAMユーザを作成し、送付に用いるSMTP情報をダウンロードします。
ここでダウンロードしたSMTP設定をWordPressに使用して設定を進めるということになります。


# WordPressの設定

1. WordPressの管理画面の「プラグイン」を押下し、プラグイン一覧を表示します。
2. 「WP Mail SMTP」が無効になっているならば、有効化します。
3. 「WP Mail SMTP」の設定画面を開き、Amazon SESから取得したSMTP情報やメールアドレスを設定します。

|No.| 設定項目 | 値 |
| ---- | ---- | ---- |
|1| 送信元メールアドレス |任意文字列(no-replayなど) + SESで登録したドメイン |
|2| フォーム名 |任意文字列(メール送付元として表示されたい値)|
|3| メーラー |その他のSMTP|
|4| SMTPホスト |email-smtp.ap-northeast-1.amazonaws.com　※SESをどのリージョンで設定したかで変わります。|
|5| 暗号化 |TLS|
|6| SMTPポート |587|
|7| 認証 |オン|
|8| SMTPユーザ名 |SESからダウンロードしたSMTPユーザ名|
|9| SMTPパス |SESからダウンロードしたSMTPのパスワード|

「設定を保存」ボタンをクリックする。

:::note warn
SMTPホストについてはSESをどのリージョンで設定したかで変わります。
:::

4. 「WP Mail SMTP」の「メールテスト」のタブから、テストメールを送信してみる。
送付先にはSESで登録したメールアドレス宛にし、「メールを送信」ボタンをクリックする。
これで設定先にメールが飛んでくればOKです。

:::note info
送付されたメールのヘッダーを確認し、DKIM認証が通っていれば「DKIM-Signature」のブロックが存在しているはずです。
:::

# Amazon SESのサンドボックスモードについて
SESのダッシュボードに以下のような画像が出るのを気づいたと思います。
![image⑪.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375141/3ae9b9a6-6414-9dab-43cc-9c5858bdd060.png)

WordPressで使う上でこのモードの解除は必要かということですが、Amazon SESにWordPressの管理用メールアドレスを登録するのであれば必要ないと思います。

https://docs.aws.amazon.com/ja_jp/ses/latest/dg/request-production-access.html

> E メールの送信先は、検証済み E メールアドレスおよびドメイン、または Amazon SES メールボックスシミュレーターに制限されます。

上記からサンドボックスモードだと検証済みのEメールアドレスとドメイン宛にしかメールは送付できません。

> 最大で 24 時間あたり 200 メッセージを送信できます。

1日最大200通のメール送信に制限されています。