SESとWorkMailで送信用メールアドレスを作りたい！

## 通知用メールアドレスが欲しい
Cognitoメールのクォーター制限により、SES化を余儀なくされ、通知用メールアドレスが必要になったのでWorkMailで送信用アドレスを作ってみました。
メールアドレスのドメインはシステム側と合わせたいので、Route53へ登録済みのものを利用する前提になってます。  

## 前提  
 - ドメインを取得し、Route53のホストゾーンへ登録済みであること

## Amazon WorkMailでアドレスの作成
### organizationの作成
`Amazon WorkMail`へアクセス
利用可能リージョンが限られるようなので「バージニア北部」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1057132/791b3b8a-d34f-0a37-608e-a6cd853aa25f.png)

Create organizationのページで、利用したいドメイン（Route53で登録済みのホストゾーン）の選択と、Aliasの入力を行い、「Create organization」

Aliasはデフォルトドメイン（メールボックスのドメイン等）として利用されます。
また、organization作成時にRoute53の対象ホストゾーンに必要なレコードが追加されます。

追加されない場合は、`Organizations > [作成したorganization] > Domains > [指定したホストゾーンドメイン]`でレコードを確認し、手動で追加してください。
![スクリーンショット 2024-07-01 165456.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1057132/8d82cab0-c161-1e2b-725d-968f8b4f03ab.png)

### ユーザーの作成
Organizations > [作成したorganization] > Usersへアクセスし、「Add user」
![スクリーンショット 2024-07-01 171122.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1057132/0cb7c585-d5e3-a344-a4ee-893124b205f7.png)


必要項目を埋めて「Add user」
Email addressのドメインはorganization作成時に指定したものを選択
⇒これが実際に利用するメールアドレスになります！
![FireShot Capture 005 - Add a user - Amazon WorkMail - us-east-1 - us-east-1.console.aws.amazon.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1057132/a5a9860e-2194-43c9-ed65-356e7ef5cfbc.png)

ここまでで、メールアドレスの作成は完了デス！

## SESの設定  
SESのリージョンはその他の利用するサービスに応じて適宜変更してください。  
今回はCognito（ユーザープールは東京リージョンにある）で使用する都合により、東京リージョンで設定しています。

### 設定セットの作成（やらなくてもOK）
`Amazon SES > 設定: 設定セット`へアクセスし、「セットの作成」から設定セットを作成します。
https://docs.aws.amazon.com/ja_jp/ses/latest/dg/using-configuration-sets.html
![FireShot Capture 006 - セットの作成 - Amazon Simple Email Service - ap-northeast-1_ - ap-northeast-1.console.aws.amazon.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1057132/6982195f-0e85-3378-6f3c-a2f78525ea48.png)

### メールアドレスの登録
`Amazon SES > 設定: ID`へアクセスし、「IDの作成」
EメールアドレスにWorkMailで指定したアドレスを入力し、「IDの作成」
作成した設定セットを利用する場合はそれも指定しときます。
![FireShot Capture 007 - ID を作成 - Amazon Simple Email Service - ap-northeast-1_ - ap-northeast-1.console.aws.amazon.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1057132/6240fc74-fe67-7383-fe80-1327d1278b1a.png)

`Amazon WorkMail > Organizations > [作成したorganization]`へ移動し、メールクライアントのページにアクセスします。
`Amazon WorkMail web application`に記載されているアドレスがメールクライアントのアクセスURLになってます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1057132/5a78ad38-a0ac-3447-eb52-60883c51732e.png)

設定したID/PASSでログインし、受信ボックス内にある確認メールを開きます。
開くと、確認用のURLが記載されているのでURLへアクセスし、SES確認を行います。（アクセスするだけでOK）
![スクリーンショット 2024-07-01 181648.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1057132/f29dab26-3d99-66e7-bbcc-c116054dc699.png)

再び、`Amazon SES > 設定: ID`へアクセスすると"IDステータス"が"検証済み"となり、メールアドレスが利用可能になります！
![スクリーンショット 2024-07-01 182015.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1057132/258ee3d6-cedd-4178-f28d-847096e49a45.png)

### テストEメールの送信  
#### 注意事項
SESを設定するリージョンがサンドボックスにある場合は、検証済みIDにしかメールを送れません。
そのため、テストEメールの送信先として指定したいアドレスを"Amazon SES > 設定: ID"として登録する必要があります。 
登録手順は前項の「[メールアドレスの登録](#メールアドレスの登録)」と同じ手順で実施できます。

#### テストEメールの送信
`Amazon SES > 設定: ID`で作成したメールアドレスを選択し、「テストEメールの作成」
![スクリーンショット 2024-07-01 182611.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1057132/6937f4ae-7deb-fe95-72d0-a6ec1d4f6ed5.png)

シナリオで「カスタム」を選択し、"カスタム受信者"として、テストメールの送信先となるアドレスを指定します。
件名や本文をよしなに入力し、「テストEメールの送信」
![FireShot Capture 008 - テスト E メールの送信 - Amazon Simple Email Service - ap-northeast-1_ - ap-northeast-1.console.aws.amazon.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1057132/26408f38-89d4-cf57-ae30-9925ccb4b878.png)


受信できてればOKデス！

## おまけ（サンドボックスの解除） 
SESを設定したばかりの状態ではサンドボックスに設定がある状態となり、いくつかの制約を受けることになります。
詳細は以下を参照ください。  
https://docs.aws.amazon.com/ja_jp/ses/latest/dg/request-production-access.html

SESのダッシュボード経由でも解除申請可能ですが、今回はサポートケースからサービスクウォーターの引き上げ申請を上げることで、結果としてサンドボックス外に移していただきました。