Amazon Simple Email Service (SES) を使えば、アプリケーションからバルクトランザクションメールをプログラムを使って送ることができます。1ヶ月に数通のメッセージを送る場合でも、毎日数百万通のメールを送る場合でも、SESを使えばコスト効率よく、使った分だけ支払えばよいプライスモデルでご利用いただけます。
SESは、デリバビリティ(送った電子メールが実際に目的のメールボックスに届いているかどうか)を管理するのに役立ちます。デリバビリティを最大化するためには、Eメールアドレスのリストをきれいに保っておくことが重要です。例えば、ISPからのComplaintを処理する必要があるような場合、適切に一時的または永続的なBounceを処理する必要があります。
今までは、SESはメールボックスにBounceやComplaintを送っていました。これに対応するためには、適切なメッセージを識別、取得し、それを解析し、その結果何をすべきかを把握する必要がありました。
今日からは、このプロセスを単純化するメカニズムが使えるようになりました。選択したSNS (Simple Notification Service) のトピックにJSON形式のメッセージを送信することによって、BounceとComplaintを知ることができます。
セットアップするにはSetIdentityNotificationTopic APIをコールするか、単純にAWS Management Consoleにて、トピックを設定します。

この設定はドメイン全体にも各Eメールアドレス毎にも設定できます。一度設定をすると、BounceとComplaintがトピックにルーティングされるようになります。トピックが削除もしくはアクセス不能になった場合は、電子メールベースの通知に戻ります。

各通知には3つのトップレベルのフィールドが含まれます。
- 通知タイプ(Bounce もしくは Complaint)
- 通知を引き起こしたメール・メッセージに関する情報を含むメールオブジェクト
- BounceオブジェクトもしくはComplaintオブジェクト
メールオブジェクトは次のようになります。
"timestamp":"2012-05-25T14:59:38.623-07:00",
"messageId":"000001378603177f-7a5433e7-8edb-42ae-af10-f0181f34d6ee-000000",
"source":"sender@example.com",
"destination":[
"recipient1@example.com",
"recipient2@example.com",
"recipient3@example.com",
"recipient4@example.com"
]
}
Bounceオブジェクトは次のようになります。
"bounceType":"Permanent",
"bounceSubType": "General",
"bouncedRecipients":[
{
"status":"5.0.0",
"action":"failed",
"diagnosticCode":"smtp; 550 user unknown",
"emailAddress":"recipient1@example.com"
},
{
"status":"4.0.0",
"action":"delayed",
"emailAddress":"recipient2@example.com"
}
],
"reportingMTA": "example.com",
"timestamp":"2012-05-25T14:59:38.605-07:00",
"feedbackId":"000001378603176d-5a4b5ad9-6f30-4198-a8c3-b1eb0c270a1d-000000"
}
bounceTypeはUndetermined、 Permanent (このタイプの場合、指定された受信者へのメールの送信を止めるべきです。)、Transient (このタイプの場合、Bounceした原因をもっと詳しく見るためにbounceSubTypeを調べた後、再送信することができます。)のいずれかです。
Complaintオブジェクトは次のようになります。
"userAgent":"Comcast Feedback Loop (V0.01)",
"complainedRecipients":[
{
"emailAddress":"recipient1@example.com"
}
],
"complaintFeedbackType":"abuse",
"arrivalDate":"Thu, 03 Dec 2009 04:24:21 -0500",
"timestamp":"2012-05-25T14:59:38.623-07:00",
"feedbackId":"000001378603177f-18c07c78-fa81-4a58-9dd1-fedc3cb8f49a-000000"
}
complaintFeedbackTypeはabuse、auth-failure、fraud、not-spam、virus、otherのいずれかになります。Complaintへの適切な応答はこのフィールドと受信者により判断をします。
さらに詳しい情報については、Amazon SES Documentationを参照してください。