AWS Security ChangesHomeSearch

AWS ses documentation change

Service: ses · 2025-09-28 · Documentation low

File: ses/latest/dg/notification-contents.md

Summary

Updated terminology from 'Amazon SES' to 'SES' throughout the document and added a new 'UnsubscribedRecipient' bounce subtype with guidance on list management to avoid sending to unsubscribed recipients.

Security assessment

The changes primarily involve branding updates (replacing 'Amazon SES' with 'SES'). The addition of the 'UnsubscribedRecipient' bounce subtype and related guidance emphasizes compliance with email best practices (e.g., honoring unsubscriptions) to maintain sender reputation and avoid spam complaints. While this supports secure email practices, there is no evidence of a specific security vulnerability being addressed.

Diff

diff --git a/ses/latest/dg/notification-contents.md b/ses/latest/dg/notification-contents.md
index 250c0b541..4d9c83e44 100644
--- a//ses/latest/dg/notification-contents.md
+++ b//ses/latest/dg/notification-contents.md
@@ -28 +28 @@ The following are some important notes about the contents of Amazon SNS notifica
-  * For a given notification type, you might receive one Amazon SNS notification for multiple recipients, or you might receive a single Amazon SNS notification per recipient. Your code should be able to parse the Amazon SNS notification and handle both cases; Amazon SES does not make ordering or batching guarantees for notifications sent through Amazon SNS. However, different Amazon SNS notification types (for example, bounces and complaints) are not combined into a single notification.
+  * For a given notification type, you might receive one Amazon SNS notification for multiple recipients, or you might receive a single Amazon SNS notification per recipient. Your code should be able to parse the Amazon SNS notification and handle both cases; SES does not make ordering or batching guarantees for notifications sent through Amazon SNS. However, different Amazon SNS notification types (for example, bounces and complaints) are not combined into a single notification.
@@ -32 +32 @@ The following are some important notes about the contents of Amazon SNS notifica
-  * Amazon SES reserves the right to add additional fields to the notifications. As such, applications that parse these notifications must be flexible enough to handle unknown fields.
+  * SES reserves the right to add additional fields to the notifications. As such, applications that parse these notifications must be flexible enough to handle unknown fields.
@@ -34 +34 @@ The following are some important notes about the contents of Amazon SNS notifica
-  * Amazon SES overwrites the headers of the message when it sends the email. You can retrieve the headers of the original message from the `headers` and `commonHeaders` fields of the `mail` object.
+  * SES overwrites the headers of the message when it sends the email. You can retrieve the headers of the original message from the `headers` and `commonHeaders` fields of the `mail` object.
@@ -41 +41 @@ The following are some important notes about the contents of Amazon SNS notifica
-The top-level JSON object in an Amazon SES notification contains the following fields.
+The top-level JSON object in an SES notification contains the following fields.
@@ -58 +58 @@ Field name | Description
-`messageId` |  A unique ID that Amazon SES assigned to the message. Amazon SES returned this value to you when you sent the message.
+`messageId` |  A unique ID that SES assigned to the message. SES returned this value to you when you sent the message.
@@ -62 +62 @@ Field name | Description
-This message ID was assigned by Amazon SES. You can find the message ID of the original email in the `headers` field of the `mail` object.  
+This message ID was assigned by SES. You can find the message ID of the original email in the `headers` field of the `mail` object.  
@@ -65 +65 @@ This message ID was assigned by Amazon SES. You can find the message ID of the o
-`sourceIp` |  The originating public IP address of the client that performed the email sending request to Amazon SES.  
+`sourceIp` |  The originating public IP address of the client that performed the email sending request to SES.  
@@ -67 +67 @@ This message ID was assigned by Amazon SES. You can find the message ID of the o
-`callerIdentity` |  The IAM identity of the Amazon SES user who sent the email.  
+`callerIdentity` |  The IAM identity of the SES user who sent the email.  
@@ -69 +69 @@ This message ID was assigned by Amazon SES. You can find the message ID of the o
-`headersTruncated` |  This object is only present if you configured the notification settings to include the headers from the original email. Indicates whether the headers are truncated in the notification. Amazon SES truncates the headers in the notification when the headers from the original message are 10 KB or larger in size. Possible values are `true` and `false`.  
+`headersTruncated` |  This object is only present if you configured the notification settings to include the headers from the original email. Indicates whether the headers are truncated in the notification. SES truncates the headers in the notification when the headers from the original message are 10 KB or larger in size. Possible values are `true` and `false`.  
@@ -74 +74 @@ This message ID was assigned by Amazon SES. You can find the message ID of the o
-Any message ID within the `headers` object is from the original message that you passed to Amazon SES. The message ID that Amazon SES subsequently assigned to the message is in the `messageId` field of the `mail` object.  
+Any message ID within the `headers` object is from the original message that you passed to SES. The message ID that SES subsequently assigned to the message is in the `messageId` field of the `mail` object.  
@@ -134 +134 @@ The following is an example of a `mail` object that includes the original email
-          "subject":"Message sent using Amazon SES"
+          "subject":"Message sent using SES"
@@ -144,2 +144,2 @@ Field name | Description
-`bounceType` |  The type of bounce, as determined by Amazon SES. For more information, see Bounce types.  
-`bounceSubType` |  The subtype of the bounce, as determined by Amazon SES. For more information, see Bounce types.  
+`bounceType` |  The type of bounce, as determined by SES. For more information, see Bounce types.  
+`bounceSubType` |  The subtype of the bounce, as determined by SES. For more information, see Bounce types.  
@@ -147 +147 @@ Field name | Description
-`timestamp` |  The date and time at which the bounce was sent (in ISO8601 format). Note that this is the time at which the notification was sent by the ISP, and not the time at which it was received by Amazon SES.  
+`timestamp` |  The date and time at which the bounce was sent (in ISO8601 format). Note that this is the time at which the notification was sent by the ISP, and not the time at which it was received by SES.  
@@ -150 +150 @@ Field name | Description
-If Amazon SES was able to contact the remote Message Transfer Authority (MTA), the following field is also present.
+If SES was able to contact the remote Message Transfer Authority (MTA), the following field is also present.
@@ -154 +154 @@ Field name | Description
-`remoteMtaIp` |  The IP address of the MTA to which Amazon SES attempted to deliver the email.  
+`remoteMtaIp` |  The IP address of the MTA to which SES attempted to deliver the email.  
@@ -216 +216 @@ The following is an example of an object that might be in the `bouncedRecipients
-The bounce object contains a bounce type of `Undetermined`, `Permanent`, or `Transient`. The `Permanent` and `Transient` bounce types can also contain one of several bounce subtypes. 
+The bounce object contains a bounce type of `Undetermined`, `Permanent` _(hard)_ , or `Transient` _(soft)_. The `Permanent` _(hard)_ and `Transient` _(soft)_ bounce types can also contain one of several bounce subtypes. 
@@ -218 +218 @@ The bounce object contains a bounce type of `Undetermined`, `Permanent`, or `Tra
-When you receive a bounce notification with a bounce type of `Transient`, you might be able to send email to that recipient in the future if the issue that caused the message to bounce is resolved. 
+When you receive a bounce notification with a bounce type of `Transient` _(soft)_ , you might be able to send email to that recipient in the future if the issue that caused the message to bounce is resolved. 
@@ -220 +220 @@ When you receive a bounce notification with a bounce type of `Transient`, you mi
-When you receive a bounce notification with a bounce type of `Permanent`, it's unlikely that you'll be able to send email to that recipient in the future. For this reason, you should immediately remove the recipient whose address produced the bounce from your mailing lists. 
+When you receive a bounce notification with a bounce type of `Permanent` _(hard)_ , it's unlikely that you'll be able to send email to that recipient in the future. For this reason, you should immediately remove the recipient whose address produced the bounce from your mailing lists. 
@@ -224 +224 @@ When you receive a bounce notification with a bounce type of `Permanent`, it's u
-When a _soft bounce_ (a bounce related to a temporary issue, such as the recipient's inbox being full) occurs, Amazon SES attempts to redeliver the email for a certain period of time. At the end of that period of time, if Amazon SES still can't deliver the email, it stops trying.
+When a _soft bounce_ (a bounce related to a temporary issue, such as the recipient's inbox being full) occurs, SES attempts to redeliver the email for a certain period of time. At the end of that period of time, if SES still can't deliver the email, it stops trying.
@@ -226 +226 @@ When a _soft bounce_ (a bounce related to a temporary issue, such as the recipie
-Amazon SES provides notifications for hard bounces, and for soft bounces that it stopped trying to deliver. If you want to receive a notification each time a soft bounce occurs, [enable event publishing](./monitor-sending-using-event-publishing-setup.html) and configure it to send notifications when delivery delay events occur.
+SES provides notifications for hard bounces, and for soft bounces that it stopped trying to deliver. If you want to receive a notification each time a soft bounce occurs, [enable event publishing](./monitor-sending-using-event-publishing-setup.html) and configure it to send notifications when delivery delay events occur.
@@ -230 +230 @@ bounceType | bounceSubType | Description
-`Undetermined` |  `Undetermined` |  The recipient's email provider sent a bounce message. The bounce message didn't contain enough information for Amazon SES to determine the reason for the bounce. The bounce email, which was sent to the address in the Return-Path header of the email that resulted in the bounce, might contain additional information about the issue that caused the email to bounce.  
+`Undetermined` |  `Undetermined` |  The recipient's email provider sent a bounce message. The bounce message didn't contain enough information for SES to determine the reason for the bounce. The bounce email, which was sent to the address in the Return-Path header of the email that resulted in the bounce, might contain additional information about the issue that caused the email to bounce.  
@@ -237,2 +237,7 @@ When you receive this type of bounce notification, you should immediately remove
-`Permanent` |  `Suppressed` |  The recipient's email address is on the Amazon SES suppression list because it has a recent history of producing hard bounces. To override the global suppression list, see [Using the Amazon SES account-level suppression list](./sending-email-suppression-list.html).   
-`Permanent` |  `OnAccountSuppressionList` | Amazon SES has suppressed sending to this address because it is on the [account-level suppression list](./sending-email-suppression-list.html). This does not count toward your bounce rate metric.  
+`Permanent` |  `Suppressed` |  The recipient's email address is on the SES suppression list because it has a recent history of producing hard bounces. To override the global suppression list, see [Using the Amazon SES account-level suppression list](./sending-email-suppression-list.html).   
+`Permanent` |  `OnAccountSuppressionList` | SES has suppressed sending to this address because it is on the [account-level suppression list](./sending-email-suppression-list.html). This does not count toward your bounce rate metric.  
+`Permanent` |  `UnsubscribedRecipient` | This bounce type occurs when the recipient contact has unsubscribed from the topic and a mail is sent to them using [list management options](./sending-email-list-management.html#configuring-list-management-list-contacts). SES respects the contact preference and doesn't attempt delivery. Also, this bounce doesn't impact sender reputation since the delivery was not attempted, nor is the recipient contact added to a suppression list due to the bounce.
+
+###### Tip
+
+It's recommended that you subscribe to UnsubscribedRecipient events to avoid continued sending to to unsubscribed recipients. Consider [Using list management](./sending-email-list-management.html). List management should be the source of truth for your subscriber list. From the perspective of SES enforcement, if you continue to send to suppressed or unsubscribed recipients, you'll have the reputation of not adhering to best practices for email sending.  
@@ -243 +248 @@ When you receive this type of bounce notification, you should immediately remove
-If you send an email to a recipient who has an active automatic response rule (such as an "out of the office" message), you might receive this type of notification. Even though the response has a notification type of `Bounce`, Amazon SES doesn't count automatic responses when it calculates the bounce rate for your account.  
+If you send an email to a recipient who has an active automatic response rule (such as an "out of the office" message), you might receive this type of notification. Even though the response has a notification type of `Bounce`, SES doesn't count automatic responses when it calculates the bounce rate for your account.  
@@ -256 +261 @@ Field name | Description
-`timestamp` |  The date and time when the ISP sent the complaint notification, in ISO 8601 format. The date and time in this field might not be the same as the date and time when Amazon SES received the notification.   
+`timestamp` |  The date and time when the ISP sent the complaint notification, in ISO 8601 format. The date and time in this field might not be the same as the date and time when SES received the notification.   
@@ -258 +263 @@ Field name | Description
-`complaintSubType` | 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](./sending-email-suppression-list.html).  
+`complaintSubType` | The value of the `complaintSubType` field can either be null or `OnAccountSuppressionList`. If the value is `OnAccountSuppressionList`, SES accepted the message, but didn't attempt to send it because it was on the [account-level suppression list](./sending-email-suppression-list.html).  
@@ -291 +296 @@ The `complainedRecipients` field contains a list of recipients that may have sub
-Most ISPs remove the email address of the recipient who submitted the complaint from their complaint notification. For this reason, 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.
+Most ISPs remove the email address of the recipient who submitted the complaint from their complaint notification. For this reason, 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. SES performs a lookup against the original message to determine this recipient list.
@@ -333,2 +338,2 @@ Field name | Description
-`timestamp` |  The time Amazon SES delivered the email to the recipient's mail server (in ISO8601 format).  
-`processingTimeMillis` |  The time in milliseconds between when Amazon SES accepted the request from the sender to passing the message to the recipient's mail server.  
+`timestamp` |  The time SES delivered the email to the recipient's mail server (in ISO8601 format).  
+`processingTimeMillis` |  The time in milliseconds between when SES accepted the request from the sender to passing the message to the recipient's mail server.  
@@ -336,3 +341,3 @@ Field name | Description
-`smtpResponse` |  The SMTP response message of the remote ISP that accepted the email from Amazon SES. This message varies by email, by receiving mail server, and by receiving ISP.  
-`reportingMTA` |  The hostname of the Amazon SES mail server that sent the mail.  
-`remoteMtaIp` |  The IP address of the MTA to which Amazon SES delivered the email.  
+`smtpResponse` |  The SMTP response message of the remote ISP that accepted the email from SES. This message varies by email, by receiving mail server, and by receiving ISP.  
+`reportingMTA` |  The hostname of the SES mail server that sent the mail.  
+`remoteMtaIp` |  The IP address of the MTA to which SES delivered the email.