AWS SESを使いたてでメールを送信しても届かない時に確認したいこと

# サンドボックスが原因かもしれません。

# “サンドボックス” is 何

>**サンドボックス**は、通常、システム障害やソフトウェアの脆弱性の拡散を軽減するために、実行中のプログラムを分離するためのセキュリティメカニズムです。
...
高度に制御された環境を提供するという意味で、サンドボックスは[仮想化](https://en.wikipedia.org/wiki/Virtualization)の具体例と見なすことができます。

https://en.wikipedia.org/wiki/Sandbox_(computer_security)

# SESにおいてはどういうことだってばよ？

SESにおけるサンドボックスは、メール送受信の不正利用や悪用などを防ぐため、新規に作成されたアカウントに一定の制限が設けらた状態で提供されるSESの利用環境です。

**制限内容（2022.1.27現在）**

- Eメールの送信先が検証済みEメールアドレス・ドメイン、メールボックスシミュレーターに限定される
- 最大で24時間あたり200メッセージ
- 最大で1秒あたり1メッセージ

つまり、「sesに登録されているアドレス・ドメイン宛てにしか送信できないよー。レート制限もあるから定められた時間内で送信量の制限を超えないように使ってねー」ということですね。

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

そしてダッシュボードにも初期状態だと警告が出ていますね。

![スクリーンショット 2022-01-26 12.17.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/525590/3340a85d-13ef-cb88-1428-0d78b9e16d99.png)


# 上記を踏まえ

### 「サンドボックス環境でのメール送信利用の設定もしくはサンドボックスの解除はもうやってるよ！」という方

⇒ すみませんでした。本記事でお力になれることはなさそうです。さよなら。。

### 「サンドボックス環境設定があったのか、特に設定解除とかメールアドレスの認証とかやってなかったな」という方

⇒ 読む価値あるかもです。

# どういったアプローチでメール利用できるようにするのか

## ◾️ サンドボックス環境で使えれば良いやーって方

対象：不特定多数のユーザーへのメール送信とかしなくても良い。とりあえずに検証だけSESを利用できればいいんだって人

- 検証済みのIDとして送信対象のメールアドレスを追加しましょう。

sesコンソールサイドバー > Verified identities  > Create identity

![スクリーンショット 2022-01-27 22.22.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/525590/54687e49-fd10-e8d0-8110-f79bc39d79be.png)


![スクリーンショット 2022-01-27 22.25.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/525590/bae40baa-0272-c9b1-32cf-c378de4cc4c0.png)

![スクリーンショット 2022-01-27 22.26.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/525590/7b9206a2-2431-5bd3-0259-64dd121335b5.png)

追加すると対象のアドレスに確認用メールが送られます。（リンクを踏めば認証完了で、UnverifiedがVerifiedに変わります。）

これでメールアドレスの認証ができたので、対象のメールアドレスであればサンドボックス内からでもSESを利用し、メールが送信できるようになります。

## ◾️ サンドボックス環境から脱したい方

対象：不特定多数のユーザーへのメール送信が必要なんだ、リリースも近いんだよ、早くテストさせろよって人

- 残念ながらあなたの力ではどうにもなりません。サポートセンターへサンドボックス解除依頼の申請をしましょう。

SESコンソールサイドバー > Account dashboard > Request production access

![スクリーンショット 2022-01-27 22.29.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/525590/8921dc03-26d5-a1ed-7c4a-b589e26ae8fc.png)

![スクリーンショット 2022-01-27 23.39.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/525590/44311062-72a2-97c7-1e5a-663526c310f8.png)

フォームの解説をします。

**Mail type**

マーケティングかトランザクションか。

マーケティングはメルマガなどのコンテンツ一斉配信での利用、トランザクションは何らかのトリガーによって自動配信されるメールのイメージで良いかと思います。

**Website URL**

SESを利用するサービスのURLです。

**Use case description**

実際にSESを利用する方法。（多分どういった用途で使うのかを書けばよいと思います。）

また、公式ではこの項目について、以下の内容の回答も求められています。

>- メーリングリストをどのように構築または取得しますか?
- バウンスや苦情はどのように処理しますか?
- 受取人はお客様からの E メールの受信をどのようにオプトアウトできますか?
- このリクエストで指定した送信レートまたは送信クォータは、どのように選択しましたか?

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

**Additional contacts *- optional***

リクエストに関する通知の宛先メールアドレス。

**Preferred contact language**

サポートセンターからの返信をどの言語で受け取るか。

**Acknowledgement**

利用規約の同意的なやつですね。

上記の内容を入力し、送信しましょう。24時間以内に一次回答もしくは承認の連絡がくるみたいですね。

承認が降りれば、メールで制限緩和の旨が送られてくるようになります。

制限が緩和されれば基本的に送信先のドメイン等に縛られることなく自由にSESによるメール機能を利用できるようになるかと思います！

# おわりに

- ローカルでは別のメール送信ツールを利用し、動作確認はできていたが、デプロイ環境でSESを利用した際に動かない、あれ？とならないためにも仕様は把握しておきたいですね。
- サンドボックス解除も早ければ翌日には審査が完了し、制限が緩和されるという話はよく聞きますが、サービスのリリースが近づいた際にバタバタしないためにも余裕を持って申請できるといいですね。