Contents of event data that Amazon SES publishes to Amazon SNS
Amazon SES publishes email sending event records to Amazon Simple Notification Service in JSON format.
You can find example records for all of these notification types in Examples of event data that Amazon SES publishes to Amazon SNS.
Topics in this section:
Top-level JSON object
The top-level JSON object in an email sending event record contains the following fields. The event type determines which other objects are present.
Field Name | Description |
---|---|
|
A string that describes the type of event. Possible values:
If you did not set up event
publishing this field is named
|
|
A JSON object that contains information about the email that produced the event. |
|
This field is only present if |
|
This field is only present if |
|
This field is only present if |
|
This field is only present if |
|
This field is only present if |
|
This field is only present if |
|
This field is only present if |
|
This field is only present if |
|
This field is only present if |
|
This field is only present if |
Mail object
Each email sending event record contains information about the original email in the
mail
object. The JSON object that contains information about a
mail
object has the following fields.
Field Name | Description |
---|---|
|
The date and time, in ISO8601 format (YYYY-MM-DDThh:mm:ss.sZ), when the message was sent. |
|
A unique ID that Amazon SES assigned to the message. Amazon SES returned this value to you when you sent the message. NoteThis message ID was assigned by Amazon SES. You can find the message ID of the original
email in the |
|
The email address that the message was sent from (the envelope MAIL FROM address). |
|
The Amazon Resource Name (ARN) of the identity that was used to send the email. In
the case of sending authorization, the |
|
The AWS account ID of the account that was used to send the email. In the case of
sending authorization, the |
|
A list of email addresses that were recipients of the original mail. |
|
A string that specifies whether the headers are truncated in the notification, which
occurs if the headers are larger than 10 KB. Possible values are |
|
A list of the email's original headers. Each header in the list has a
NoteAny message ID within the |
|
A mapping of the email's original, commonly used headers. NoteAny message ID within the |
|
A list of tags associated with the email. |
Bounce object
The JSON object that contains information about a Bounce
event has the
following fields.
Field Name | Description |
---|---|
|
The type of bounce, as determined by Amazon SES. |
|
The subtype of the bounce, as determined by Amazon SES. |
|
A list that contains information about the recipients of the original mail that bounced. |
|
The date and time, in ISO8601 format (YYYY-MM-DDThh:mm:ss.sZ), when the ISP sent the bounce notification. |
|
A unique ID for the bounce. |
|
The value of the NoteThis field only appears if a delivery status notification (DSN) was attached to the bounce. |
Bounced recipients
A bounce event may pertain to a single recipient or to multiple recipients. The
bouncedRecipients
field holds a list of objects—one object
per recipient whose email address produced a bounce—and contains the following
field.
Field Name | Description |
---|---|
|
The email address of the recipient. If a DSN is available,
this is the value of the |
Optionally, if a DSN is attached to the bounce, the following fields may also be present.
Field Name | Description |
---|---|
|
The value of the |
|
The value of the |
|
The status code issued by the reporting MTA. This is the
value of the |
Bounce types
Each bounce event is of one of the types shown in the following table.
The event publishing system only publishes hard bounces and soft bounces that are
no longer retried by Amazon SES. When you receive bounces marked Permanent
,
you should remove the corresponding email addresses from your mailing list; you will
not be able to send to them in the future. Transient
bounces are sent
to you when a message has soft bounced several times, and Amazon SES has stopped trying
to re-deliver it. You may be able to successfully resend to an address that
initially resulted in a Transient
bounce in the future.
bounceType | bounceSubType | Description |
---|---|---|
|
|
Amazon SES was unable to determine a specific bounce reason. |
|
|
Amazon SES received a general hard bounce. If you receive this type of bounce, you should remove the recipient's email address from your mailing list. |
|
|
Amazon SES received a permanent hard bounce because the target email address does not exist. If you receive this type of bounce, you should remove the recipient's email address from your mailing list. |
|
|
Amazon SES has suppressed sending to this address because it has a recent history of bouncing as an invalid address. To override the global suppression list, see Using the Amazon SES account-level suppression list. |
Permanent |
OnAccountSuppressionList |
Amazon SES has suppressed sending to this address because it is on the account-level suppression list. This does not count toward your bounce rate metric. |
|
|
Amazon SES received a general bounce. You may be able to successfully send to this recipient in the future. |
|
|
Amazon SES received a mailbox full bounce. You may be able to successfully send to this recipient in the future. |
|
|
Amazon SES received a message too large bounce. You may be able to successfully send to this recipient if you reduce the size of the message. |
|
|
Amazon SES received a content rejected bounce. You may be able to successfully send to this recipient if you change the content of the message. |
|
|
Amazon SES received an attachment rejected bounce. You may be able to successfully send to this recipient if you remove or change the attachment. |
Complaint object
The JSON object that contains information about a Complaint
event has the
following fields.
Field Name | Description |
---|---|
|
A list that contains information about recipients that may have submitted the complaint. |
|
The date and time, in ISO8601 format (YYYY-MM-DDThh:mm:ss.sZ), when the ISP sent the complaint notification. |
|
A unique ID for the complaint. |
|
The subtype of the complaint, as determined by Amazon SES. |
Further, if a feedback report is attached to the complaint, the following fields may be present.
Field Name | Description |
---|---|
|
The value of the |
|
The value of the |
|
The value of the |
Complained recipients
The complainedRecipients
field contains a list of recipients that may
have submitted the complaint.
Important
Most ISPs redact the email addresses of recipients who submit complaints. For
this reason, the complainedRecipients
field includes a list of
everyone who was sent the email whose address is on the domain that issued the
complaint notification.
JSON objects in this list contain the following field.
Field Name | Description |
---|---|
|
The email address of the recipient. |
Complaint types
You may see the following complaint types in the
complaintFeedbackType
field as assigned by the reporting ISP,
according to the Internet Assigned Numbers Authority website
Field Name | Description |
---|---|
|
Indicates unsolicited email or some other kind of email abuse. |
|
Email authentication failure report. |
|
Indicates some kind of fraud or phishing activity. |
|
Indicates that the entity providing the report does not consider the message to be spam. This may be used to correct a message that was incorrectly tagged or categorized as spam. |
|
Indicates any other feedback that does not fit into other registered types. |
|
Reports that a virus is found in the originating message. |
Complaint subtypes
The value of the complaintSubType
field can either be null or
OnAccountSuppressionList
. If the value is
OnAccountSuppressionList
, Amazon SES accepted the message, but didn't
attempt to send it because it was on the account-level suppression
list.
Delivery object
The JSON object that contains information about a Delivery
event has the
following fields.
Field Name | Description |
---|---|
|
The date and time when Amazon SES delivered the email to the recipient's mail server, in ISO8601 format (YYYY-MM-DDThh:mm:ss.sZ). |
|
The time in milliseconds between when Amazon SES accepted the request from the sender to when Amazon SES passed the message to the recipient's mail server. |
|
A list of intended recipients that the delivery event applies to. |
|
The SMTP response message of the remote ISP that accepted the email from Amazon SES. This message will vary by email, by receiving mail server, and by receiving ISP. |
|
The host name of the Amazon SES mail server that sent the mail. |
Send object
The JSON object that contains information about a send
event is always
empty.
Reject object
The JSON object that contains information about a Reject
event has the
following fields.
Field Name | Description |
---|---|
|
The reason the email was rejected. The only possible value is |
Open object
The JSON object that contains information about a Open
event has the
following fields.
Field Name | Description |
---|---|
|
The recipient's IP address. |
|
The date and time when the open event occurred in ISO8601 format (YYYY-MM-DDThh:mm:ss.sZ). |
|
The user agent of the device or email client that the recipient used to open the email. |
Click object
The JSON object that contains information about a Click
event has the
following fields.
Field Name | Description |
---|---|
|
The recipient's IP address. |
|
The date and time when the click event occurred in ISO8601 format (YYYY-MM-DDThh:mm:ss.sZ). |
|
The user agent of the client that the recipient used to click a link in the email. |
|
The URL of the link that the recipient clicked. |
|
A list of tags that were added to the link using the |
Rendering Failure object
The JSON object that contains information about a Rendering Failure
event
has the following fields.
Field Name | Description |
---|---|
|
The name of the template used to send the email. |
|
A message that provides more information about the rendering failure. |
DeliveryDelay object
The JSON object that contains information about a DeliveryDelay
event has
the following fields.
Field Name | Description |
---|---|
|
The type of delay. Possible values are:
|
|
An object that contains information about the recipient of the email. |
|
The date and time when Amazon SES will stop trying to deliver the message. This value is shown in ISO 8601 format. |
|
The IP address of the Message Transfer Agent (MTA) that reported the delay. |
|
The date and time when the delay occurred, shown in ISO 8601 format. |
Delayed recipients
The delayedRecipients
object contains the following values.
Field Name | Description |
---|---|
|
The email address that resulted in the delivery of the message being delayed. |
|
The SMTP status code associated with the delivery delay. |
|
The diagnostic code provided by the receiving Message Transfer Agent (MTA). |
Subscription object
The JSON object that contains information about a Subscription
event has
the following fields.
Field Name | Description |
---|---|
|
The name of the list the contact is on. |
|
The date and time, in ISO8601 format (YYYY-MM-DDThh:mm:ss.sZ), when the ISP sent the subscription notification. |
|
The email address that the message was sent from (the envelope MAIL FROM address). |
|
A JSON data-structure (map) which specifies the subscription status of all the topics in the contact list indicating the status after a change (contact subscribed or unsubscribed). |
|
A JSON data-structure (map) which specifies the subscription status of all the topics in the contact list indicating the status before the change (contact subscribed or unsubscribed). |
New/old topic preferences
The newTopicPreferences
and oldTopicPreferences
objects
contain the following values.
Field Name | Description |
---|---|
|
Specifies if the contact unsubscribed from all the topics in the contact list. |
|
Specifies the subscription status
of the topic in the |
|
Specifies the default subscription
status of the topic in the |