SESでバウンスした場合に送信元メールアドレスによってバウンス通知先を変える方法
困っていた内容
SESでバウンスした場合に、送信元メールアドレスによってバウンス通知先を変えたいのですがどうすればいいですか?
どう対応すればいいの?
結論からお伝えします。 既にSESからメール送信が可能であり、SESのバウンス通知先としてSNSトピックを設定している場合は、設定しているSNSトピックのサブスクリプションのサブスクリプションフィルターポリシーに、本文ベースのポリシーを以下のように設定することで、指定の送信元メールアドレスの場合にのみバウンス通知を配信することができます。
{ "mail": { "source": [ "<通知を配信したい送信元メールアドレス>" ] } }
試してみた
下記の挙動となるように設定します。
- メールアドレスA(SES)のバウンスは メールアドレスC(SNSトピックのサブスクリプション)で受信する。
- メールアドレスB(SES)のバウンスは メールアドレスD(SNSトピックのサブスクリプション)で受信する。
SNS側の設定
SNSトピックを作成する
SNSトピック作成で、タイプは「スタンダード」を選択し、名前を入力してトピックを作成します。
SNS トピックにサブスクリプションを作成する
先ほど作成したSNSトピックの「サブスクリプションの作成」から、サブスクリプションを作成します。
プロトコルは「Eメール」とし、エンドポイントに受信可能なメールアドレスを入力します。「サブスクリプションの作成」で登録します。
次に、サブスクリプションフィルターポリシーを設定します。以下のように設定すると、SESからメールアドレス sender@example.com でメール送信しバウンスした場合に、このサブスクリプションで受信することになります。
SES側の設定
検証済みIDを作成する
SESには、検証済みIDとしてドメインとメールアドレスを設定できますが、今回は以下のようにメールアドレスを登録しました。
設定すると指定のメールアドレスに確認メールが届くので、URLをクリックし confirm します。
動作確認のため検証済みIDを2つ登録しました。IDステータスが「検証済み」になっていることを確認します。
SNSトピックをバウンス通知先として設定する
登録した検証済みIDの通知タブの「フィードバック通知」の「編集」から、SNSトピックを設定します。
「バウンスフィードバック」で、先ほど作成した SNSトピックを選び「変更の保存」から保存します。
テストメールを送ってみる
「テスト E メールの送信」ボタンから、テストメールを送ることができます。
シナリオで「バウンス」を選択し、メールアドレスAとBで件名を変えて送ってみました。
設定したそれぞれのメールアドレス(SNS トピックのサブクリプション) に届きました。