SES のバウンス、苦情、拒否イベントをシミュレートする

SES のバウンス、苦情、拒否イベントをシミュレートする

シミュレーターアドレスを使って、実際の受信者にメールを送ることなく SES のバウンス、苦情、拒否通知をトリガーする方法を紹介します。

Takahiro Iwasa
3 min read

Amazon SES には、実際の受信者へメールを送信せずに、アプリケーションによるバウンス、苦情、拒否通知の処理をテストできるシミュレーターアドレスが用意されています。詳細は公式ドキュメントを参照してください。

前提条件

始める前に、以下を完了させてください。

  1. Amazon SES でメールアドレスを検証する。
  2. 登録したメールアドレスに対して Email Feedback Forwarding を有効化する。

Email Feedback Forwarding Setup

バウンスのシミュレーション

バウンスは以下でシミュレートできます。

Terminal window
aws ses send-email \
--from <YOUR_EMAIL> \
--subject test \
--text test

--from オプションで指定したアドレスに、バウンスが発生したことを示すメールが届きます。

Bounce Simulation Example

苦情のシミュレーション

苦情も同様のパターンで、異なるシミュレーターアドレスを指定します。

Terminal window
aws ses send-email \
--from <YOUR_EMAIL> \
--subject test \
--text test

苦情を示すメールが --from アドレスに送信されます。

Complaint Simulation Example

拒否のシミュレーション

拒否をシミュレートするには、EICAR テストファイルを添付したメールを送信する必要があります。SES のウイルススキャンがこれを検知します。

Terminal window
FROM=<YOUR_EMAIL>
MESSAGE='{"Data": "From: $FROM\nTo: $FROM\nSubject: test\nMIME-Version: 1.0\nContent-type: Multipart/Mixed; boundary=\"NextPart\"\n\n--NextPart\nContent-Type: text/plain\n\ntest\n\n--NextPart\nContent-Type: text/plain;\nContent-Disposition: attachment; filename=\"sample.txt\"\n\nX5O!P%@AP[4\\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*\n\n--NextPart--"}'
MESSAGE=$(echo $MESSAGE | sed "s/\$FROM/$FROM/g")
aws ses send-raw-email \
--cli-binary-format raw-in-base64-out \
--raw-message "$MESSAGE"

FROM アドレスに拒否通知メールが届きます。

Reject Simulation Example

まとめ

SES のメールボックスシミュレーターを使うと、実際の受信者へメールを送信せずに、バウンス、苦情、拒否通知を発生させられます。

[email protected][email protected] は、通常の send-email の呼び出しで利用できるため、開発中に各通知の処理を確認できます。

拒否をテストするには、EICAR テストファイルを添付した MIME ペイロードを send-raw-email で送信します。バウンス処理と同じコードでウイルススキャンによる拒否も扱えると仮定せず、この経路は個別にテストしてください。

About the author

Takahiro Iwasa

Takahiro Iwasa

Software Developer

This blog shares technical notes from hands-on projects—architecture, implementation, and AWS service integrations.