Amazon SES の Amazon SNS 通知コンテンツ - Amazon Simple Email Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon SES の Amazon SNS 通知コンテンツ

バウンス、苦情、および配信の通知は、JavaScript Object Notation (JSON) 形式で、Amazon Simple Notification Service (Amazon SNS) トピックに発行されます。トップレベル JSON オブジェクトには、notificationType 文字列と mail オブジェクトに加え、bounce オブジェクト、complaint オブジェクト、または delivery オブジェクトのいずれかが含まれます。

オブジェクトのタイプごとの詳細については以下のセクションを参照してください。

以下は、Amazon SES の Amazon SNS 通知の内容に関する重要な注意事項です。

  • 該当する通知タイプにより、複数の受信者に対応する 1 つの Amazon SNS 通知を受け取ることもあれば、各受信者に 1 つの Amazon SNS 通知を受け取ることもあります。コードでは Amazon SNS 通知を解析して、どちらの場合にも対応できる必要があります。Amazon SNS を使用して送信された通知に関しては、Amazon SES では順序付けや一括処理が保証されません。ただし、タイプの異なる Amazon SNS 通知 (バウンスと苦情など) が 1 つの通知にまとめられることはありません。

  • 1 人の受信者に対して複数のタイプの Amazon SNS 通知を受け取ることがあります。たとえば、受信メールサーバーは、E メールを受理した場合でも (配信の通知をトリガーします)、そのメールの処理後に、そのメールは実際にはバウンスであると判定する場合があります (バウンスの通知をトリガーします)。ただし、通知のタイプが異なるため、これらは常に個別に通知されます。

  • Amazon SES には、通知にフィールドを追加する権限があります。そのため、これらの通知を解析するアプリケーションには、不明なフィールドを処理できるだけの十分な柔軟性が必要です。

  • Amazon SES では、E メールの送信時にメッセージのヘッダーを上書きします。mail オブジェクトの headers および commonHeaders フィールドから元のメッセージのヘッダーを取得できます。

トップレベル JSON オブジェクト

Amazon SES 通知のトップレベル JSON オブジェクトには、以下のフィールドが含まれています。

フィールド名 説明
notificationType

通知のタイプを格納する文字列は、JSON オブジェクトによって表されます。想定される値は、BounceComplaint、および Delivery です。

イベント発行をセットアップする場合、このフィールドの名前は eventType です。

mail

通知に関連する元のメールについての情報を含む JSON オブジェクト。詳細については、「Mail オブジェクト」を参照してください。

bounce

このフィールドは notificationTypeBounce である場合のみ存在し、バウンスに関する情報を持つ JSON オブジェクトが含まれます。詳細については、「Bounce オブジェクト」を参照してください。

complaint

このフィールドは notificationTypeComplaint である場合のみ存在し、苦情に関する情報を持つ JSON オブジェクトが含まれます。詳細については、「苦情のオブジェクト」を参照してください。

delivery

このフィールドは notificationTypeDelivery である場合のみ存在し、配信に関する情報を持つ JSON オブジェクトが含まれます。詳細については、「配信オブジェクト」を参照してください。

Mail オブジェクト

バウンス、苦情、または配信の通知にはそれぞれ、mail オブジェクト内の元の E メールについての情報が含まれます。mail オブジェクトについての情報を含む JSON オブジェクトには次のフィールドが含まれます。

フィールド名 説明
timestamp

元のメッセージが送信された日時 (ISO 8601 形式)。

messageId

Amazon SES がメッセージに割り当てた一意の ID。ユーザーがメッセージを送信すると、Amazon SES がこの値を返します。

注記

このメッセージ ID は Amazon SES によって割り当てられます。元の E メールのメッセージ ID は、mail オブジェクトの headers フィールドにあります。

source

元のメッセージが送信された E メールアドレス (エンベロープ MAIL FROM アドレス)。

sourceArn

E メールの送信に使用された ID の Amazon リソースネーム (ARN)。送信承認の場合、sourceArn は、代理送信者が E メールの送信に使用することをアイデンティティ所有者により承認されたアイデンティティの ARN です。送信承認の詳細については、「E メールの認証方法」を参照してください。

sourceIp

Amazon SES にリクエストを送信する E メールを実行するクライアントの送信側パブリック IP アドレス。

sendingAccountId

E メールの送信に使用されたアカウントのAWS アカウントID。送信承認の場合、sendingAccountId は代理送信者のアカウント ID です。

callerIdentity

E メールを送信した Amazon SES ユーザーの IAM ID。

destination

元のメールの受取人の E メールアドレスのリスト。

headersTruncated

元の E メールからヘッダーを含めるように通知設定を構成した場合にのみ、このオブジェクトが表示されます。

ヘッダーが通知で切り詰められるかどうかを示します。Amazon SES では、元のメッセージのヘッダーのサイズが10KB以上の場合、通知のヘッダーが切り詰められます。指定できる値は true および false です。

headers

元の E メールからヘッダーを含めるように通知設定を構成した場合にのみ、このオブジェクトが表示されます。

E メールの元のヘッダーの一覧。リスト内の各ヘッダーには、name フィールドと value フィールドがあります。

注記

headers オブジェクト内のメッセージ ID は、Amazon SES に渡した元のメッセージのものです。その後 Amazon SES がメッセージに割り当てるメッセージ ID は、mail オブジェクトの messageId フィールドのものです。

commonHeaders

元の E メールからヘッダーを含めるように通知設定を構成した場合にのみ、このオブジェクトが表示されます。

元の E メールからの一般的な E メールヘッダーに関する情報 (送信元、宛先、件名フィールドなど) が含まれます。このオブジェクト内では、各ヘッダーはキーとなります。送信元フィールドと宛先フィールドは、複数の値を含むことができる配列で表されます。

注記

イベントの場合、commonHeaders フィールド内のメッセージ ID は、Amazon SES が後でメールオブジェクトの messageId フィールドでメッセージに割り当てたメッセージ ID です。通知には、元の E メールのメッセージ ID が含まれます。

以下は、元の E メールヘッダーを含む mail オブジェクトの例です。この通知タイプが元の E メールヘッダーを含めるように設定されていない場合は、mail オブジェクトに headersTruncatedheaders および commonHeaders フィールドが含まれません。

{ "timestamp":"2018-10-08T14:05:45 +0000", "messageId":"000001378603177f-7a5433e7-8edb-42ae-af10-f0181f34d6ee-000000", "source":"sender@example.com", "sourceArn": "arn:aws:ses:us-east-1:888888888888:identity/example.com", "sourceIp": "127.0.3.0", "sendingAccountId":"123456789012", "destination":[ "recipient@example.com" ], "headersTruncated":false, "headers":[ { "name":"From", "value":"\"Sender Name\" <sender@example.com>" }, { "name":"To", "value":"\"Recipient Name\" <recipient@example.com>" }, { "name":"Message-ID", "value":"custom-message-ID" }, { "name":"Subject", "value":"Hello" }, { "name":"Content-Type", "value":"text/plain; charset=\"UTF-8\"" }, { "name":"Content-Transfer-Encoding", "value":"base64" }, { "name":"Date", "value":"Mon, 08 Oct 2018 14:05:45 +0000" } ], "commonHeaders":{ "from":[ "Sender Name <sender@example.com>" ], "date":"Mon, 08 Oct 2018 14:05:45 +0000", "to":[ "Recipient Name <recipient@example.com>" ], "messageId":" custom-message-ID", "subject":"Message sent using Amazon SES" } }

Bounce オブジェクト

バウンスに関する情報を含む JSON オブジェクトには以下のフィールドがあります。

フィールド名 説明
bounceType

バウンスのタイプで、Amazon SES によって決定されます。詳細については、「バウンスのタイプ」を参照してください。

bounceSubType

バウンスのサブタイプで、Amazon SES によって決定されます。詳細については、「バウンスのタイプ」を参照してください。

bouncedRecipients

バウンスとなった元のメールの受取人についての情報を含むリスト。詳細については、「バウンスとなった受取人」を参照してください。

timestamp

バウンスが送信された日時 (ISO 8601 形式)。この時刻は、ISP によって通知が送信された時刻であり、Amazon SES が通知を受け取った時刻ではないことに注意してください。

feedbackId

バウンスの一意の ID。

Amazon SES がリモートの Message Transfer Authority (MTA) に接続できた場合は、次のフィールドも表示されます。

フィールド名 説明
remoteMtaIp

Amazon SES で E メールの配信を試みた先の MTA の IP アドレス。

配信状態通知 (DSN) がバウンスに添付されている場合は、次のフィールドも表示されます。

フィールド名 説明
reportingMTA

DSN の Reporting-MTA フィールドの値。これは、DSN に記述された配信、リレー、またはゲートウェイのオペレーションを試みた MTA の値です。

以下は、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.605Z", "feedbackId":"000001378603176d-5a4b5ad9-6f30-4198-a8c3-b1eb0c270a1d-000000", "remoteMtaIp":"127.0.2.0" }

バウンスとなった受取人

バウンスの通知には、1 人の受信者に関するものと複数の受信者に関するものがあります。bouncedRecipients フィールドはオブジェクトのリスト (バウンスの通知が関係する受取人ごとに 1 つのオブジェクト) を保持し、常に次のフィールドが含まれます。

フィールド名 説明
emailAddress

受取人の E メールアドレス。DSN が利用できる場合、これが DSN の Final-Recipient フィールドの値です。

オプションで、DSN がバウンスに添付されている場合、以下のフィールドも表示される場合があります。

フィールド名 説明
action

DSN の Action フィールドの値。このフィールドには、Reporting-MTA により実行された、この受取人に対してメッセージを送信しようとした結果のアクションが示されます。

status

DSN の Status フィールドの値。これは、メッセージの配信状態を示す、受取人ごとに個別の、トランスポート独立型ステータスコードです。

diagnosticCode

ステータスコードは、Reporting-MTA により発行されます。これは、DSN の Diagnostic-Code フィールドの値です。このフィールドが DSN に存在しない場合もあります (その場合 JSON オブジェクトにも表示されません)。

以下は、bouncedRecipients のリストに示されるオブジェクトの例です。

{ "emailAddress": "recipient@example.com", "action": "failed", "status": "5.0.0", "diagnosticCode": "X-Postfix; unknown user" }

バウンスのタイプ

バウンスオブジェクトには、バウンスタイプとして UndeterminedPermanent、または Transient が含まれます。Permanent バウンスタイプと Transient バランスタイプには、複数のバウンスサブタイプのいずれかも含まれます。

バウンスタイプが Transient のバウンス通知を受信した場合は、メッセージのバウンスを起こした問題が解決されたときに、この受取人に対して将来 E メールを送信できる可能性があります。

バウンスタイプが Permanent のバウンス通知を受信した場合、この受取人に将来 E メールを送信できる可能性はありません。このため、バウンスを生じたアドレスを持つ受取人はメーリングリストから即座に削除してください。

注記

ソフトバウンス (受信者の受信トレイが満杯であるなどの一時的な問題に伴うバウンス) が発生すると、Amazon SES は一定期間にわたり、E メールの再配信を試行します。この期間の終了時に、まだ E メールを送信できない場合、Amazon SES は試行を停止します。

Amazon SES は、ハードバウンスの通知に加えて、配信の試行を停止したソフトバウンスの通知を提供します。ソフトバウンスが発生するたびに通知を受信する場合は、イベントの公開を有効にし、配信遅延イベントが発生したときに通知を送信するように設定します。

bounceType bounceSubType 説明
Undetermined Undetermined

受取人の E メールプロバイダーはバウンスメッセージを送信しました。バウンスメッセージには、Amazon SES がバウンスの理由を判断できるだけの十分な情報が含まれていませんでした。バウンスを生じた E メールのリターンパスヘッダーのアドレスに送信されたバウンス E メールには、E メールのバウンスを起こした問題について追加情報が含まれている可能性があります。

Permanent General

受取人の E メールプロバイダーはハードバウンスメッセージを送信しました。

重要

このタイプのバウンス通知を受信した場合は、受取人の E メールアドレスをメーリングリストから即座に削除してください。ハードバウンスを生じたアドレスにメッセージを送信すると、送信者としての評価に悪影響を及ぼす可能性があります。ハードバウンスを生じたアドレスに E メールを送信し続けると、追加の E メールの送信機能が一時停止される場合があります。「Amazon SESアカウントレベルのサプレッションリストの使用」を参照してください。

Permanent NoEmail

バウンスメッセージから受信者のメールアドレスを取得できませんでした。

Permanent Suppressed

受信者の E メールアドレスは、最近の履歴でハードバウンスを生じているため、Amazon SES サプレッションリストに追加されています。グローバルサプレッションリストを上書きするには、「Amazon SESアカウントレベルのサプレッションリストの使用」を参照してください。

Permanent OnAccountSuppressionList

Amazon SES は、アドレスがアカウントレベルのサプレッションリストにあるので、このアドレスへの送信を抑制しました。これは、バウンス率のメトリクスに対してはカウントされません。

Transient General

受取人の E メールプロバイダーは一般的なバウンスメッセージを送信しました。メッセージのバウンスを生じた問題が解決された場合、将来、同じ受取人にメッセージを送信できる可能性があります。

注記

アクティブな自動応答ルール (不在メッセージなど) が設定されている受取人に E メールを送信すると、このタイプの通知を受け取る場合があります。レスポンスの通知タイプが Bounce であっても、Amazon SES は自動応答をカウントすることなくアカウントのバウンス率を計算します。

Transient MailboxFull

受取人の E メールプロバイダーは、受取人の受信トレイが満杯であるために、バウンスメッセージを送信しました。メールボックスが満杯でなくなった場合、将来、同じ受取人に送信できる可能性があります。

Transient MessageTooLarge

受取人の E メールプロバイダーは、受信したメッセージが大きすぎるために、バウンスメッセージを送信しました。メッセージのサイズを小さくすることで、同じ受取人にメッセージを送信できる可能性があります。

Transient ContentRejected

受取人の E メールプロバイダーは、受信したメッセージにプロバイダーが許可しないコンテンツが含まれていたために、バウンスメッセージを送信しました。メッセージのコンテンツを変更することで、同じ受取人にメッセージを送信できる可能性があります。

Transient AttachmentRejected

受取人の E メールプロバイダーは、メッセージ内に許容されないコンテンツが含まれていたために、バウンスメッセージを送信しました。たとえば、一部の E メールプロバイダーは特定のファイルタイプのファイルが添付されたメッセージや、非常に大きなファイルが添付されたメッセージを拒否する場合があります。添付ファイルのコンテンツを削除または変更することで、同じ受取人にメッセージを送信できる可能性があります。

苦情のオブジェクト

苦情に関する情報を含む JSON オブジェクトには以下のフィールドが含まれます。

フィールド名 説明
complainedRecipients

苦情の原因である可能性がある受取人についての情報を含むリスト。詳細については、「苦情を申告した受取人」を参照してください。

timestamp

ISP が苦情通知を ISO 8601 形式で送信した日時。このフィールドの日時は、Amazon SES が通知を受信した日時とは同じでない可能性があります。

feedbackId

苦情に関連付けられた一意の ID。

complaintSubType

complaintSubType フィールドの値は、null または OnAccountSuppressionList のいずれかになります。値が OnAccountSuppressionList の場合、Amazon SES はメッセージを受け入れますが、アカウントレベルのサプレッションリストに含まれているため、送信を試みません。

また、フィードバックレポートが苦情に添付されている場合、以下のフィールドが示される場合があります。

フィールド名 説明
userAgent

フィードバックレポートの User-Agent フィールドの値。これは、レポートを生成したシステムの名前とバージョンを示します。

complaintFeedbackType

ISP から受け取ったフィードバックレポートの Feedback-Type フィールドの値。これには、フィードバックのタイプが含まれます。

arrivalDate

ISO 8601 形式のフィードバックレポートの Arrival-Date フィールドまたは Received-Date フィールドの値。このフィールドがレポートにない場合もあります (その場合、JSON オブジェクトにも表示されません)。

以下は、complaint オブジェクトの例です。

{ "userAgent":"ExampleCorp Feedback Loop (V0.01)", "complainedRecipients":[ { "emailAddress":"recipient1@example.com" } ], "complaintFeedbackType":"abuse", "arrivalDate":"2009-12-03T04:24:21.000-05:00", "timestamp":"2012-05-25T14:59:38.623Z", "feedbackId":"000001378603177f-18c07c78-fa81-4a58-9dd1-fedc3cb8f49a-000000" }

苦情を申告した受取人

complainedRecipients フィールドには、苦情の送信元と思われる受信者のリストが含まれます。この情報を使用して、苦情の送信元の受取人を特定し、この受取人をメーリングリストから即座に削除します。

重要

ほとんどの ISP は、苦情の送信元である受取人の E メールアドレスを苦情通知から削除します。このため、このリストに含まれている苦情の送信元と思われる受信者に関する情報は、元のメッセージの受信者と、苦情の送信元の ISP に基づくものです。Amazon SES では、この受信者のリストを確認するために元のメッセージを参照します。

このリストの JSON オブジェクトには以下のフィールドが含まれます。

フィールド名 説明
emailAddress

受取人の E メールアドレス。

以下は、苦情を申告した受取人のオブジェクトの例です。

{ "emailAddress": "recipient1@example.com" }
注記

受信者 1 人につき 1 つのメッセージが送信されるように制限している (BCC 行に 30 個の異なる E メールアドレスを指定して送信しない) 場合は、この動作を利用して、メッセージに関する苦情を伝えている E メールアドレスをより確実に特定することできます。

苦情のタイプ

complaintFeedbackType フィールドには以下の苦情のタイプが示されます (Internet Assigned Numbers Authority ウェブサイト に基づいて、報告する ISP により割り当てられます)。

  • abuse — 未承諾またはその他種類の不正使用メールを示します。

  • auth-failure — E メールの認証の障害を示します。

  • fraud — なんらかの詐欺またはフィッシング行為を示します。

  • not-spam — レポートの提供者がこのメッセージをスパムではないと見なしていることを示します。このタイプは、誤ってスパムとしてタグ付けまたは分類されたメッセージを修正するために使用される場合があります。

  • other — その他の登録されたタイプに該当しないフィードバックを示します。

  • virus — 元のメッセージでウイルスが見つかったことを示します。

配信オブジェクト

配信に関する情報を含む JSON オブジェクトには常に以下のフィールドがあります。

フィールド名 説明
timestamp

Amazon SES が E メールを受信者のメールサーバーに配信した時間 (ISO8601 形式)。

processingTimeMillis

Amazon SES で送信者からのリクエストを受理したときから受信者のメールサーバーにそのメッセージが渡されたときまでのミリ秒単位での時間。

recipients

配信通知を適用する E メールの対象となる受信者のリスト。

smtpResponse

Amazon SES から E メールを受け取ったリモート ISP による SMTP 応答メッセージ。このメッセージは、E メール、受信メールサーバー、および受信 ISP ごとに異なります。

reportingMTA

メールを送信する Amazon SES メールサーバーのホスト名。

remoteMtaIp

Amazon SES が E メールを配信した先の MTA の IP アドレス。

以下は、delivery オブジェクトの例です。

{ "timestamp":"2014-05-28T22:41:01.184Z", "processingTimeMillis":546, "recipients":["success@simulator.amazonses.com"], "smtpResponse":"250 ok: Message 64111812 accepted", "reportingMTA":"a8-70.smtp-out.amazonses.com", "remoteMtaIp":"127.0.2.0" }