SESの通知管理の重要性
AWS SESの通知には、バウンス、苦情、配信がありますが、
これらの中でも、一番重要なのは、バウンスではないかと思われます。
AWS SESのハードバウンスに対する対応は、なかなか辛辣です。
一度ハードバウンスが返却されれば、
Suppression Listにメールアドレスが登録されます。
AWSのコンソールでSuppression Listからメールアドレスを削除しなければ、
その宛先に対し、最大2週間メール送信することができなくなります。
また、送信メールのバウンス率が高くなると、
SESのサービスそのものを止められてしまいます。
こういったリスクを最小限に止めるためにも、
バウンスの管理は非常に重要と言えます。
また、本来、バウンスと苦情を管理できなければ、
サンドボックス制限を解除してはいけません。
通知の受け取り方
管理については、以下のドキュメントに記載されています。
https://docs.aws.amazon.com/ja_jp/ses/latest/DeveloperGuide/notifications-via-email.html
ドキュメントにある通り、バウンスの通知を受け取る方法には、
大きく分けて2通りあります。
SESから直接Eメールで通知を受け取る方法と、
AWS SNS経由で、他のサービスと連携する方法です。
Eメールでの通知のみであれば、SESのコンソール画面だけで設定を完了できます。
https://docs.aws.amazon.com/ja_jp/ses/latest/DeveloperGuide/notifications-via-email.html
しかし、自社のDBにバウンスを保存するといった場合には、SNSを利用する方が容易です。
利用サービス
ここでは、定期処理でバウンスを取得する場合でのAWSの設定を解説します。
SESの他に、下記のサービスを利用します。
SNS
SESから通知を受け取り、SQSにバウンスの通知内容を送信
SQS
SNSから通知を受け取り、外部から通知内容を取り出し可能に
手順
SNSに、SESからのバウンスを受け取るためのトピックを作成します。
SNSトピック作成
SNS Homeから、Create Topicを選択します。
name, Display nameは分かりやすい名前をつけます。
SES通知設定
受け取りたい通知の対象に応じ、
DomainsかEmail Addressを選択します。
遷移後、通知対象のURLをクリックします。
Notificationを選択し、続いて、Edit Configurationを選択します。
ダイアログ中の、SNS Topic ConfigurationのBouncesで、
先ほど作成したSNSトピックを選択します。
残りの手順(SNSから、SQSにメッセージを送信する設定)
ここまでの手順で、SESからSNSに対して通知が送信されるはずです。
SNSからSQSにメッセージを送信する方法は、
下記のドキュメントを参照してください。
http://docs.aws.amazon.com/ja_jp/sns/latest/dg/SendMessageToSQS.html
以上の作業で、SQSにメッセージが蓄積されるはずです。
あとは、定期処理でSQSからメッセージを取得し、
DBで保存すれば、自前の環境でバウンスの一覧を参照できるようになります。
今回はバウンスで解説しましたが、
他の通知に関しても同様の方法で通知を取得可能です。
注意
バウンスのテストをする時には、
テスト用のメールアドレスを利用するようにしてください。
そうしなければ、バウンス率が上がってしまいまい、
最悪、SESサービスが利用できなくなります。
テスト用のメールアドレスは、下記のドキュメントに記載されています。
https://docs.aws.amazon.com/ja_jp/ses/latest/DeveloperGuide/mailbox-simulator.html