はじめに

Amazon SES (Simple Email Service)のサプレッションリストについてご紹介します。
SESでは、バウンス率や苦情率が上がると、メールの送信が制限されたり停止されたりします。
そのため、バウンス率や苦情率の監視を行ったりしますが、サプレッションリストを使って運用軽減させることができます。

そもそもバウンスや苦情とは

バウンス

送信したメールが受信者のメールサーバで配信不能とされること。

ハードバウンス

  • 永続的なメール配信エラー
  • メールアドレスが無効であるか、存在しない場合に発生することが多い
    • 例えば、受信者のドメインが存在しない、アドレスが誤っているなど

ソフトバウンス

  • 一時的なメール配信エラーで、遅延または拒否される
  • 受信者のメールボックスがいっぱいだったり、受信者のメールサーバに一時的な障害が発生しているなどが原因
  • SESはソフトバウンスを複数回再試行し、それでもメールを配信できない場合は再試行を停止する

苦情

受信者が不要と判断し、スパムとして報告すること。

バウンス率と苦情率の推奨値

AWSの推奨値としては以下となっています。

  • バウンス率は5%未満とすること
    • 10%以上でメール送信を一時停止する可能性がある
  • 苦情率は0.1%未満とすること
    • 0.5%以上でメール送信を一時停止する可能性がある

サプレッションリストとは

SESのサプレッションリストは、メールの送信先を管理するリストで、バウンスや苦情があった場合、そのメールアドレスに対して自動でメールを送信しないようにします。これにより、メール配信の品質や信頼性を向上させることができます。

このサプレッションリストには大きく分けると以下の2つがあります。

  • グローバルサプレッションリスト
  • アカウントレベルのサプレッションリスト

グローバルサプレッションリスト

  • グローバルで全てのユーザに適用されるサプレッションリスト
  • デフォルト有効で、無効にできない
  • リスト対象の条件は、ハードバウンス
    • 一定時間経過後、リストからメールアドレスは削除される
    • ハードバウンスするたびに一時的に登録される期間が長くなる
    • 最長14日間
  • リストからの削除はできない
    • 以前はできたようですが、できなくなっています
  • リストのメールアドレスに送信した場合、アカウントのバウンス率および日ごとの送信クォータにカウントする

Amazon SES グローバルサプレッションリスト

アカウントレベルのサプレッションリスト

  • 特定アカウント(リージョンごと)に適用されるサプレッションリスト
  • デフォルト有効で、無効にも設定可能
  • リスト対象の条件は、ハードバウンス、苦情、どちらかの選択も可能
    • メールアドレスは、削除するまでリストに残る
  • リストからの削除はSESコンソールまたはAPIから可能
  • リストのメールアドレスに送信した場合、アカウントのバウンス率または苦情率にカウントしない

サプレッションの理由も記録されます。

Amazon SES アカウントレベルのサプレッションリストの使用

サプレッションリストがあると何が良いのか

グローバルサプレッションリストの追加条件がハードバウンスなので、バウンス率で考えてみます。

グローバルサプレッションリストのみの場合

(2019/11/25以降にSESの利用を開始した場合は、アカウントレベルのサプレッションリストはデフォルトで有効化されているので、ケースとしては少ないと思いますが)

ハードバウンスを起こしてるメールに対する送信がバウンス率にカウントされてしまうので、放置してしまうとバウンス率が上がってしまい、そのアカウントのSESからのメール送信が制限されたり、停止されたりしてしまうリスクが上がります。
これだけだと、バウンス率の改善対応がユーザ側で必須となってきます。

アカウントレベルのサプレッションリストを有効化している場合

ハードバウンスを起こしてるメールに対する送信がバウンス率にカウントされないので、仮に放置しても、バウンス率が一定の閾値に達する可能性が低くなります。
よって、ユーザ側でのバウンス率の改善対応の優先度が、グローバルサプレッションリストのみの場合と比べ、ぐっと下がります。

その代わり、バウンス率からハードバウンスを起こしてることを観測しづらくなります。
そのため、ハードバウンスを起こしてるメールアドレスが知りたい場合は、ハードバウンスを起こしてるメールアドレス一覧を定期的に取得する処理を組み込んだり、SESとSNSを組み合わせて設定してバウンスを起こしたメールアドレスを通知する機能を活用することがオススメです。

Amazon SES の Amazon SNS 通知の設定

おわりに

SESのバウンス率・苦情率を下げるサプレッションリストという機能をご紹介しました。
デフォルトで有効になっているため、一度サプレッションリストを開いて登録されているメールアドレスがあるか確認してみてはいかがでしょうか?
うまく活用してSESの運用改善につなげていくことができれば良いと思います。