Contents of event data that Amazon SES publishes to Firehose
Amazon SES publishes email sending event records to Amazon Data Firehose in JSON format. When publishing events to Firehose, Amazon SES follows each JSON record with a newline character.
You can find example records for all of these notification types in Examples of event data that Amazon SES publishes to Firehose.
Topics in this section
Top-level JSON object
The top-level JSON object in an email sending event record contains the following fields.
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 will
always have 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 to whom the bounce event pertains—and will always
contain 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 will be of one of the types shown in the following table.
The event publishing system only publishes hard bounces and soft bounces that
will no longer be 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 was not able to successfully deliver the email within the time specified by the email sender. (The bounce message will specify the reason for any possible delivery attempt failures within the defined TTL.) |
|
|
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
Since most ISPs redact the email address of the recipient who submitted the complaint from their complaint notification, this list contains information about recipients who might have sent the complaint, based on the recipients of the original message and the ISP from which we received the complaint. Amazon SES performs a lookup against the original message to determine this recipient list.
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. |
Delivery object
The JSON object that contains information about a Delivery
event will
always have 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 will
always have 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 will
always contain 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 will
always contain 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 |