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. Tu código debería poder analizar la notificación de Amazon SNS y gestionar ambos casos; SES no ofrece garantías de pedido o procesamiento por lotes 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.

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

  • 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 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 identificador único que SES asignó al mensaje. SES le devolvió este valor cuando envió el mensaje.

nota

SES asignó este identificador de mensaje. 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 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

Identidad de IAM del usuario de 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. SES trunca los encabezados de la notificación cuando los encabezados del mensaje original tienen un tamaño de 10 KB o más. 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 identificador de mensaje incluido en el headers objeto corresponde al mensaje original que le pasó a SES. El identificador de mensaje que SES asignó posteriormente al mensaje se encuentra en el messageId campo del mail objeto.

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 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, según lo determine SES. Para obtener más información, consulte Tipos de rebote.

bounceSubType

El subtipo del rebote, según lo determine 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 esta es la hora en que el ISP envió la notificación y no la hora en que SES la recibió.

feedbackId

Un ID único para el rebote.

Si SES pudo ponerse en contacto con la Autoridad de Transferencia de Mensajes (MTA) remota, también aparece el siguiente campo.

Nombre del campo Descripción
remoteMtaIp

La dirección IP de la MTA a la que 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 deUndetermined, Permanent (duro) o Transient (suave). Los tipos de rebote Permanent (duro) y Transient (suave) también pueden contener uno de varios subtipos de rebote.

Cuando recibas una notificación de rebote con un tipo de rebote Transient (suave), es posible que puedas enviar correos electrónicos a ese destinatario en el futuro si se resuelve el problema que provocó el rebote del mensaje.

Si recibes una notificación de rebote con un tipo de rebote Permanent (dura), es poco probable que puedas enviar correos electrónicos 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 suave (un rebote relacionado con un problema temporal, como que la bandeja de entrada del destinatario esté llena), SES intenta volver a entregar el correo electrónico durante un período de tiempo determinado. Al final de ese período de tiempo, si SES sigue sin poder entregar el correo electrónico, deja de intentarlo.

SES envía notificaciones para los rebotes duros y para los rebotes suaves que ha dejado de intentar entregar. 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 suficiente información para que SES pudiera determinar 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 figura en la lista de correos suprimidos de SES porque tiene un historial reciente de rebotes forzosos. 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

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

Permanent UnsubscribedRecipient

Este tipo de rebote se produce cuando el contacto destinatario ha cancelado su suscripción al tema y se le envía un correo mediante las opciones de administración de listas. SES respeta las preferencias de contacto y no intenta entregarlo. Además, este rebote no afecta a la reputación del remitente, ya que no se ha intentado realizar la entrega, ni se añade el contacto destinatario a una lista de personas excluidas debido al rebote.

sugerencia

Te recomendamos que te suscribas a UnsubscribedRecipient los eventos para evitar seguir enviando a destinatarios que no estén suscritos. Ten en cuenta. Uso de la administración de listas La administración de listas debe ser la fuente de información fiable de su lista de suscriptores. Desde el punto de vista de la aplicación de normas por parte del SES, si sigues enviando a destinatarios suprimidos o a los que se ha dado de baja, tendrás la reputación de no seguir las mejores prácticas de envío de correos electrónicos.

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 tenga un tipo de notificación igual aBounce, SES no tiene en cuenta las respuestas automáticas al calcular la tasa de rebote de tu 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. Es posible que la fecha y la hora de este campo no coincidan con la fecha y la hora en que 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 esOnAccountSuppressionList, SES aceptó el mensaje, pero no intentó enviarlo porque estaba en la lista de usuarios suprimidos a 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. 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 SES entregó el correo electrónico al servidor de correo del destinatario (en formato ISO86 01).

processingTimeMillis

El tiempo en milisegundos transcurrido entre el momento en que SES aceptó la solicitud del remitente y el envío del 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 aceptó el correo electrónico de 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 de SES que envió el correo.

remoteMtaIp

La dirección IP de la MTA a la que SES envió 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" }