Contenidos de notificaciones de Amazon SNS para Amazon SES - Amazon Simple Email Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Contenidos de notificaciones de Amazon SNS para Amazon SES

Las notificaciones de rebote, queja y entrega se publican en los temas del Amazon Simple Notification Service (Amazon SNS) en formato JavaScript Object Notation (JSON). El objeto JSON de nivel superior contiene una cadena notificationType, un objeto mail y un objeto bounce, un objeto complaint o un objeto delivery.

Consulte las secciones siguientes para las descripciones de los diferentes tipos de objetos:

A continuación se muestran algunas notas importantes acerca del contenido de las notificaciones de Amazon SNS para Amazon SES:

  • Para un tipo de notificación determinado, es posible que reciba una notificación de Amazon SNS para varios destinatarios o puede recibir una sola notificación de Amazon SNS por destinatario. El código debe ser capaz de analizar la notificación de Amazon SNS y gestionar ambos casos; Amazon SES no garantiza el orden ni la agrupación de las notificaciones enviadas a través de Amazon SNS. Sin embargo, distintos tipos de notificación de Amazon SNS (por ejemplo, rebotes y reclamos) nunca se combinan en una sola notificación.

  • Podría recibir varios tipos de notificaciones de Amazon SNS para un destinatario. Por ejemplo, el servidor de correo electrónico receptor podría aceptar el correo electrónico (activando una notificación de entrega), pero después de procesar el correo electrónico, el servidor de correo electrónico receptor podría determinar que el correo electrónico da lugar en realidad a un rebote (desencadenando una notificación de rebote). Sin embargo, estas notificaciones siempre son independientes, ya que son tipos de notificación distintos.

  • Amazon SES se reserva el derecho de agregar campos adicionales a las notificaciones. Por tanto, las aplicaciones que analizan estas notificaciones deben ser lo suficientemente flexibles como para gestionar campos desconocidos.

  • Amazon SES sobrescribe los encabezados del mensaje cuando envía el correo electrónico. Puede recuperar los encabezados del mensaje original desde los campos headers y commonHeaders del objeto mail.

Objeto JSON de nivel superior

El objeto JSON de nivel superior de una notificación de Amazon SES contiene los siguientes campos.

Nombre del campo Descripción
notificationType

Una cadena que contiene el tipo de notificación representado por el objeto JSON. Los valores posibles son Bounce, Complaint o Delivery.

Si configuró la publicación de eventos, este campo se denomina eventType.

mail

Un objeto JSON que contiene información sobre el correo original al que pertenece la notificación. Para obtener más información, consulte Objeto Mail.

bounce

Este campo está presente solo si notificationType es Bounce y contiene un objeto JSON que mantiene información sobre el rebote. Para obtener más información, consulte Objeto Bounce.

complaint

Este campo está presente solo si notificationType es Complaint y contiene un objeto JSON que mantiene información sobre la reclamación. Para obtener más información, consulte Objeto Complaint.

delivery

Este campo está presente solo si notificationType es Delivery y contiene un objeto JSON que mantiene información sobre la entrega. Para obtener más información, consulte Objeto Delivery.

Objeto Mail

Cada notificación de rebote, reclamación o entrega contiene información sobre el correo electrónico original en el objeto mail. El objeto JSON que contiene información acerca de un objeto mail tiene los campos siguientes.

Nombre del campo Descripción
timestamp

La hora a la que se envió el mensaje original (en formato ISO86 01).

messageId

Un ID exclusivo que Amazon SES asignó al mensaje. Amazon SES le devolvió este valor cuando envió el mensaje.

nota

Este ID de mensaje lo asignó Amazon SES. Puede encontrar el ID de mensaje del correo electrónico original en el campo headers del objeto mail.

source

La dirección de correo electrónico desde la que se envió el mensaje original (la dirección MAIL FROM del sobre).

sourceArn

El nombre de recurso de Amazon (ARN) de la identidad que se utilizó para enviar el correo electrónico. En el caso de una autorización de envío, el sourceArn es el ARN de la identidad que el propietario de la identidad autorizó utilizar al remitente delegado para enviar el correo electrónico. Para obtener más información acerca de la autorización de envío, consulte Métodos de autenticación del correo electrónico.

sourceIp

La dirección IP pública de origen del cliente que realizó la solicitud de envío de correo electrónico a Amazon SES.

sendingAccountId

El Cuenta de AWS ID de la cuenta que se utilizó para enviar el correo electrónico. En el caso de la autorización de envío, el sendingAccountId es el ID de cuenta del remitente delegado.

callerIdentity

La identidad de IAM del usuario de Amazon SES que ha enviado el correo electrónico.

destination

Una lista de direcciones de correo electrónico que han sido destinatarios del correo electrónico original.

headersTruncated

Este objeto solo está presente si configuró la configuración de las notificaciones para incluir los encabezados del correo electrónico original.

Indica si los encabezados están truncados en la notificación. Amazon SES trunca los encabezados en la notificación cuando los encabezados del mensaje original tienen un tamaño de 10 KB o superior. Los posibles valores son true y false.

headers

Este objeto solo está presente si configuró la configuración de las notificaciones para incluir los encabezados del correo electrónico original.

Una lista de los encabezados originales del correo electrónico. Cada encabezado de la lista tiene un campo name y un campo value.

nota

Cualquier ID de mensaje dentro del objeto headers procede del mensaje original que pasó a Amazon SES. El ID de mensaje que Amazon SES asignó seguidamente al mensaje está en el campo messageId del objeto mail.

commonHeaders

Este objeto solo está presente si configuró la configuración de las notificaciones para incluir los encabezados del correo electrónico original.

Incluye información sobre los encabezados de correo electrónico comunes del correo electrónico original, incluido los campos Desde, A y Asunto. Dentro de este objeto, cada encabezado es una clave. Los campos Desde y A se representan por matrices que contienen varios valores.

nota

Para eventos, el ID de mensaje dentro del campo commonHeaders es el ID de mensaje que Amazon SES asignó seguidamente al mensaje en el campo messageId del objeto del correo. Las notificaciones contendrán el ID de mensaje del correo electrónico original.

A continuación, se muestra un ejemplo de un objeto mail que incluye los encabezados de correo electrónico originales. Cuando este tipo de notificación no está configurado para incluir los encabezados de correo electrónico originales, el objeto mail no incluye los campos headersTruncated, headers y 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" } }

Objeto Bounce

El objeto JSON que contiene información acerca de rebotes contiene los campos siguientes.

Nombre del campo Descripción
bounceType

El tipo de rebote, tal como determina Amazon SES. Para obtener más información, consulte Tipos de rebote.

bounceSubType

El subtipo de rebote, tal como determina Amazon SES. Para obtener más información, consulte Tipos de rebote.

bouncedRecipients

Una lista que contiene información acerca de los destinatarios del mensaje de correo electrónico original que dio lugar a un rebote. Para obtener más información, consulte Destinatarios con rebote.

timestamp

La fecha y la hora en que se envió el rebote (en formato ISO86 01). Tenga en cuenta que se trata de la hora a la que el ISP envió la notificación y no la hora a la que la recibió Amazon SES.

feedbackId

Un ID único para el rebote.

Si Amazon SES pudo contactar con la autoridad de transferencia de mensajes (MTA) remota, también está presente el siguiente campo.

Nombre del campo Descripción
remoteMtaIp

La dirección IP de la MTA a la que Amazon SES intentó entregar el correo electrónico.

Si se adjunta una notificación de estado de entrega (DSN) al rebote, también está presente el siguiente campo.

Nombre del campo Descripción
reportingMTA

El valor del campo Reporting-MTA del DSN. Se trata del valor de la autoridad de transferencia de mensajes (MTA) que intentó realizar la operación de entrega, retransmisión o gateway descrita en el DSN.

A continuación se muestra un ejemplo de un objeto 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" }

Destinatarios con rebote

Una notificación de rebote podría pertenecer a un único destinatario o a varios destinatarios. El campo bouncedRecipients aloja una lista de objetos (un objeto por destinatario a quien pertenece la notificación de rebote) y siempre contiene el campo siguiente.

Nombre del campo Descripción
emailAddress

La dirección de correo electrónico del destinatario. Si hay un DSN disponible, se trata del valor del campo Final-Recipient del DSN.

Opcionalmente, si hay un DSN adjunto al rebote, los siguientes campos también podrían estar presentes.

Nombre del campo Descripción
action

El valor del campo Action del DSN. Esto indica la acción que realiza el Reporting-MTA como resultado de su intento de entregar el mensaje a este destinatario.

status

El valor del campo Status del DSN. Se trata del código de estado independiente del transporte por destinatario que indica el estado de entrega del mensaje.

diagnosticCode

El código de estado emitido por la MTA de notificación. Este es el valor del campo Diagnostic-Code del DSN. Este campo puede estar ausente en el DSN (y, por lo tanto, también ausente en el JSON).

A continuación se muestra un ejemplo de objeto que podría estar en la lista bouncedRecipients.

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

Tipos de rebote

El objeto de rebote contiene un tipo de rebote Undetermined, Permanent o Transient. Los tipos de rebote Permanent y Transient también pueden contener uno de varios subtipos de rebote.

Cuando reciba una notificación de rebote con un tipo Transient, es posible que pueda enviar correo electrónico a ese destinatario en el futuro si se resuelve el problema que provocó el rebote del mensaje.

Cuando recibes una notificación de rebote con un tipo Permanent, es poco probable que pueda enviar correo electrónico a ese destinatario en el futuro. Por este motivo, debe quitar inmediatamente el destinatario cuya dirección produjo el rebote de las listas de correo.

nota

Cuando se produce un rebote temporal (un rebote relacionado con un problema temporal, por ejemplo, que se llene la bandeja de correo del destinatario), Amazon SES intenta entregar de nuevo el correo electrónico durante un determinado periodo de tiempo. Al final de ese periodo de tiempo, si Amazon SES sigue sin poder entregar el correo electrónico, deja de intentarlo.

Amazon SES ofrece notificaciones de los rebotes permanentes, así como de los rebotes temporales cuya entrega ha dejado de intentar. Si desea recibir una notificación cada vez que se produzca un rebote temporal, habilite la publicación de eventos y configúrela para que envíe notificaciones cuando se produzcan eventos en de retraso en la entrega.

bounceType bounceSubType Descripción
Undetermined Undetermined

El proveedor de correo electrónico del destinatario envió un mensaje de rebote. El mensaje de rebote no contenía información suficiente para que Amazon SES determinara el motivo del rebote. El correo electrónico de rebote, que se envió a la dirección del encabezado Return-Path del correo electrónico que generó el rebote, podría contener información adicional sobre el problema que provocó que rebotara el correo electrónico.

Permanent General

El proveedor de correo electrónico del destinatario envió un mensaje de devolución permanente.

importante

Cuando reciba este tipo de notificación de rebote, debe quitar inmediatamente la dirección de correo electrónico del destinatario de su lista de correo. El envío de mensajes a direcciones que producen rebotes permanentes puede tener un impacto negativo en su reputación como remitente. Si sigue enviando correos electrónicos a direcciones que producen rebotes permanentes, podríamos detener su capacidad para enviar correo electrónico adicional. Consulte Uso de la lista de supresión de nivel de cuenta de Amazon SES.

Permanent NoEmail

No fue posible recuperar la dirección de correo electrónico del destinatario del mensaje de rebote.

Permanent Suppressed

La dirección de correo electrónico del destinatario está en la lista de supresión de Amazon SES porque tiene un historial reciente de generar rebotes permanentes. Para anular la lista de supresión global, consulte Uso de la lista de supresión de nivel de cuenta de Amazon SES.

Permanent OnAccountSuppressionList

Amazon SES ha suprimido el envío a esta dirección porque está en la lista de supresión de nivel de cuenta. Esto no se toma en cuenta para calcular la métrica de porcentaje de rebotes.

Transient General

El proveedor de correo electrónico del destinatario envió un mensaje de rebote general. Puede enviar un mensaje al mismo destinatario en el futuro si se resolviera el problema que provocó el rebote del mensaje.

nota

Si envía un correo electrónico a un destinatario que tiene una regla de respuesta automática activa (como, por ejemplo, un mensaje de "fuera de la oficina"), es posible que reciba este tipo de notificación. Aunque la respuesta tiene un tipo de notificación Bounce, Amazon SES no cuenta las respuestas automáticas cuando calcula la tasa de rebotes de su cuenta.

Transient MailboxFull

El proveedor de correo electrónico del destinatario envió un mensaje de rebote porque la bandeja de entrada del destinatario estaba llena. Podría realizar el envío al mismo destinatario en el futuro cuando la bandeja de entrada deje de estar llena.

Transient MessageTooLarge

El proveedor de correo electrónico del destinatario envió un mensaje de rebote porque el mensaje enviado era demasiado grande. Podría enviar un mensaje al mismo destinatario si reduce el tamaño del mensaje.

Transient ContentRejected

El proveedor de correo electrónico del destinatario envió un mensaje de rebote porque el mensaje enviado incluye contenido que el proveedor no permite. Podría enviar un mensaje al mismo destinatario si cambia el contenido del mensaje.

Transient AttachmentRejected

El proveedor de correo electrónico del destinatario envió un mensaje de rebote porque el mensaje contenía un archivo adjunto inaceptable. Por ejemplo, algunos proveedores de correo electrónico pueden rechazar mensajes con archivos adjuntos de un determinado tipo de archivo o mensajes con archivos adjuntos muy grandes. Podría enviar un mensaje al mismo destinatario si quita o cambia el contenido del archivo adjunto.

Objeto Complaint

El objeto JSON que contiene información acerca de reclamaciones tiene los campos siguientes.

Nombre del campo Descripción
complainedRecipients

Una lista que contiene información sobre destinatarios que podrían haber sido responsables de la reclamación. Para obtener más información, consulte Destinatarios con reclamaciones.

timestamp

La fecha y la hora a la que el ISP envió la notificación de reclamación, en formato ISO 8601. La fecha y la hora de este campo podrían no ser las mismas en que Amazon SES recibió la notificación.

feedbackId

Un ID único asociado con la reclamación.

complaintSubType

El valor del campo complaintSubType puede ser nulo o OnAccountSuppressionList. Si el valor es OnAccountSuppressionList, Amazon SES aceptó el mensaje, pero no intentó enviarlo porque estaba en la lista de supresión de nivel de cuenta.

Además, si se adjunta un informe de retroalimentación a la reclamación, podrían estar presentes los siguientes campos.

Nombre del campo Descripción
userAgent

El valor del campo User-Agent del informe de retroalimentación. Esto indica el nombre y la versión del sistema que generó el informe.

complaintFeedbackType

El valor del campo Feedback-Type del informe de retroalimentación recibido desde el ISP. Contiene el tipo de retroalimentación.

arrivalDate

El valor del Received-Date campo Arrival-Date o del informe de comentarios (en formato ISO86 01). Este campo puede estar ausente en el informe (y, por lo tanto, también ausente en el JSON).

A continuación se muestra un ejemplo de un objeto 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" }

Destinatarios con reclamaciones

El campo complainedRecipients contiene una lista de destinatarios que podrían haber enviado la reclamación. Debe usar esta información para determinar qué destinatario presentó la queja y, a continuación, eliminar inmediatamente a ese destinatario de sus listas de correo.

importante

La mayoría ISPs elimina la dirección de correo electrónico del destinatario que presentó la queja de su notificación de queja. Por este motivo, esta lista contiene información acerca de los destinatarios que podrían haber enviado el reclamo, en función de los destinatarios del mensaje original y el ISP del que hemos recibido el reclamo. Amazon SES realiza una búsqueda en el mensaje original para determinar esta lista de destinatarios.

Los objetos JSON de esta lista contienen el siguiente campo.

Nombre del campo Descripción
emailAddress

La dirección de correo electrónico del destinatario.

A continuación se muestra un ejemplo de un objeto de destinatario con reclamo.

{ "emailAddress": "recipient1@example.com" }
nota

Debido a este comportamiento, puede estar más seguro de que sabe qué dirección de correo electrónico ha presentado una reclamación por su mensaje si limita el envío a un mensaje por destinatario (en lugar de enviar un mensaje con 30 direcciones de correo electrónico distintas en la línea CCO).

Tipos de reclamación

Es posible que vea los siguientes tipos de reclamación en el campo complaintFeedbackType tal como los ha asignado el ISP que realiza la notificación, de acuerdo con el sitio web de Internet Assigned Numbers Authority:

  • abuse: indica correo electrónico no solicitado o algún otro tipo de abuso de correo electrónico.

  • auth-failure: informe de error de autenticación de correo electrónico.

  • fraud: indica algún tipo de fraude o actividad de phishing.

  • not-spam: indica que la entidad que proporciona el informe no considera el mensaje como spam. Esto se puede utilizar para corregir un mensaje que estaba mal etiquetado o clasificado como spam.

  • other: indica cualquier otra retroalimentación que no encaje en otros tipos registrados.

  • virus: notifica que se ha encontrado un virus en el mensaje de origen.

Objeto Delivery

El objeto JSON que contiene información sobre entregas tiene siempre los campos siguientes.

Nombre del campo Descripción
timestamp

La hora en que Amazon SES entregó el correo electrónico al servidor de correo del destinatario (en formato ISO86 01).

processingTimeMillis

El tiempo en milisegundos desde el momento en que Amazon SES; acepta la solicitud del remitente para transferir el mensaje al servidor de correo del destinatario.

recipients

Una lista de sus destinatarios de los correos electrónicos a los que corresponde la notificación de entrega.

smtpResponse

El mensaje de respuesta SMTP del ISP remoto que ha aceptado el correo electrónico desde Amazon SES. Este mensaje varía por correo electrónico, por servidor de correo electrónico de recepción y por ISP de recepción.

reportingMTA

El nombre de host del servidor de correo electrónico de Amazon SES que envió el correo electrónico.

remoteMtaIp

La dirección IP de la MTA a la que Amazon SES entregó el correo electrónico.

A continuación se muestra un ejemplo de un objeto 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" }