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