Conteúdo das notificações do Amazon SNS para o Amazon SES - Amazon Simple Email Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Conteúdo das notificações do Amazon SNS para o Amazon SES

As notificações de devolução, reclamação e entrega são publicadas nos tópicos do Amazon Simple Notification Service (Amazon SNS) no formato JSON (JavaScript Object Notation). O objeto JSON de nível superior contém uma string notificationType, um objeto mail e um objeto bounce, um objeto complaint ou um objeto delivery.

Consulte as seções a seguir para obter descrições dos diferentes tipos de objetos:

A seguir estão algumas importantes observações sobre o conteúdo das notificações do Amazon SNS para o Amazon SES:

  • Para determinado tipo de notificação, você pode receber uma notificação do Amazon SNS para vários destinatários ou receber uma única notificação do Amazon SNS por destinatário. Seu código deve ser capaz de analisar a notificação do Amazon SNS e lidar com ambos os casos; o Amazon SES não dá garantias de ordenação ou colocação em lotes para notificações enviadas por meio do Amazon SNS. No entanto, diferentes tipos de notificação do Amazon SNS (por exemplo, devoluções e reclamações) nunca são reunidos em uma única notificação.

  • Você pode receber vários tipos de notificações do Amazon SNS para um só destinatário. Por exemplo, o servidor de e-mail de recebimento pode aceitar o e-mail (acionando uma notificação de entrega), mas depois de processar o e-mail, acabar determinando que o e-mail, na verdade, resulta em uma devolução (acionando uma notificação de devolução). Mas essas notificações sempre são notificações separadas porque são tipos distintos de notificação.

  • O Amazon SES se reserva o direito de adicionar mais campos às notificações. Dessa forma, aplicações que analisam essas notificações devem ser flexíveis o suficiente para lidar com campos desconhecidos.

  • O Amazon SES sobrescreve os cabeçalhos da mensagem ao enviar o e-mail. Você pode recuperar os cabeçalhos da mensagem original dos campos headers e commonHeaders do objeto mail.

Objeto JSON de nível superior

O objeto JSON de nível superior em uma notificação do Amazon SES contém os campos a seguir.

Nome do campo Descrição
notificationType

Uma string que contém o tipo de notificação representado pelo objeto JSON. Os valores são Bounce, Complaint ou Delivery.

Se você configurou a publicação de eventos, este campo é chamado de eventType.

mail

Um objeto JSON que contém informações sobre o e-mail original ao qual a notificação pertence. Para obter mais informações, consulte Objeto de e-mail.

bounce

Este campo estará presente somente se notificationType for Bounce e contiver um objeto JSON que contém informações sobre a devolução. Para obter mais informações, consulte Objeto de devolução.

complaint

Este campo estará presente somente se notificationType for Complaint e contiver um objeto JSON que contém informações sobre a reclamação. Para obter mais informações, consulte Objeto de reclamação.

delivery

Este campo estará presente somente se notificationType for Delivery e contiver um objeto JSON que contém informações sobre a entrega. Para obter mais informações, consulte Objeto de entrega.

Objeto de e-mail

Cada notificação de devolução, reclamação ou entrega contém informações sobre o e-mail original no objeto mail. O objeto JSON que contém informações sobre um objeto mail tem os seguintes campos.

Nome do campo Descrição
timestamp

A hora em que a mensagem original foi enviada (no formato ISO8601).

messageId

Um ID exclusivo que o Amazon SES atribuiu à mensagem. O Amazon SES retornou esse valor quando você enviou a mensagem.

nota

Esse ID de mensagem foi atribuído pelo Amazon SES. Você pode encontrar o ID da mensagem do e-mail original no campo headers do objeto mail.

source

O endereço de e-mail do qual a mensagem original foi enviada (o endereço MAIL FROM no envelope).

sourceArn

O nome de recurso da Amazon (ARN) da identidade que foi usada para enviar o e-mail. No caso de autorização de envio, o sourceArn é o ARN da identidade que o proprietário de identidade autorizou o remetente delegado a usar para enviar o e-mail. Para obter mais informações sobre a autorização de envio, consulte Métodos de autenticação de e-mail.

sourceIp

O endereço IP público de origem do cliente que realizou a solicitação de envio de e-mail ao Amazon SES.

sendingAccountId

O ID da conta da Conta da AWS da conta que foi usada para enviar o e-mail. No caso de autorização de envio, sendingAccountId é o ID da conta do remetente delegado.

callerIdentity

A identidade do IAM do usuário do Amazon SES que enviou o e-mail.

destination

Uma lista de endereços de e-mail que foram destinatários da mensagem original.

headersTruncated

Esse objeto só está presente se você definiu as configurações de notificação para incluir os cabeçalhos de e-mail originais.

Indica se os cabeçalhos estão truncados na notificação. O Amazon SES trunca os cabeçalhos na notificação quando os cabeçalhos da mensagem original têm 10 KB ou mais. Os possíveis valores são true e false.

headers

Esse objeto só está presente se você definiu as configurações de notificação para incluir os cabeçalhos de e-mail originais.

Uma lista com os cabeçalhos originais do e-mail. Cada cabeçalho tem um campo name e um campo value.

nota

Qualquer ID de mensagem no objeto headers é da mensagem original que você passou ao Amazon SES. O ID da mensagem que o Amazon SES subsequentemente atribuiu à mensagem está no campo messageId do objeto mail.

commonHeaders

Esse objeto só está presente se você definiu as configurações de notificação para incluir os cabeçalhos de e-mail originais.

Inclui informações sobre cabeçalhos de e-mail comuns do e-mail original, incluindo os campos From (De), To (Para) e Subject (Assunto). Dentro desse objeto, cada cabeçalho é uma chave. Os campos From (De) e To (Para) são representados por matrizes que podem conter vários valores.

nota

Para eventos, qualquer ID de mensagem no campo commonHeaders é o ID da mensagem que o Amazon SES atribuiu subsequentemente à mensagem no campo messageId do objeto de e-mail. As notificações conterão o ID da mensagem do e-mail original.

Veja a seguir um exemplo de um objeto mail que inclui os cabeçalhos de e-mail originais. Quando esse tipo de notificação não estiver configurado para incluir cabeçalhos de e-mail originais, o objeto mail não incluirá os campos headersTruncated, headers e 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 de devolução

O objeto JSON que contém informações sobre devoluções contém os campos a seguir.

Nome do campo Descrição
bounceType

O tipo de devolução, conforme determinado pelo Amazon SES. Para obter mais informações, consulte Tipos de devolução.

bounceSubType

O subtipo da devolução, conforme determinado pelo Amazon SES. Para obter mais informações, consulte Tipos de devolução.

bouncedRecipients

Uma lista que contém informações sobre os destinatários da mensagem original que foi devolvida. Para obter mais informações, consulte Destinatários com mensagens devolvidas.

timestamp

A data e a hora em que a devolução foi enviada (no formato ISO8601). Observe que essa é a hora em que a notificação foi enviada pelo ISP, não a hora em que foi recebida pelo Amazon SES.

feedbackId

Um ID exclusivo para a devolução.

Se o Amazon SES conseguir entrar em contato com a Message Transfer Authority (MTA), o campo a seguir também estará presente.

Nome do campo Descrição
remoteMtaIp

O endereço IP da MTA para o qual o Amazon SES tentou entregar o e-mail.

Se uma notificação do status de entrega (DSN) tiver sido anexada à devolução, o campo a seguir também estará presente.

Nome do campo Descrição
reportingMTA

O valor do campo Reporting-MTA a partir do DSN. Esse é o valor da MTA que tentou executar a operação de entrega, transmissão ou gateway descritas no DSN.

Veja a seguir um exemplo de um 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" }

Destinatários com mensagens devolvidas

Uma notificação de devolução pode pertencer a um único destinatário ou a vários destinatários. O campo bouncedRecipients contém uma lista de objetos – um para cada destinatário ao qual a notificação de devolução pertence – e sempre conterá o campo a seguir.

Nome do campo Descrição
emailAddress

O endereço de e-mail do destinatário. Se um DSN estiver disponível, esse será o valor do campo Final-Recipient do DSN.

Opcionalmente, se um DSN estiver conectado à devolução, os seguintes campos também poderão estar presentes.

Nome do campo Descrição
action

O valor do campo Action a partir do DSN. Isso indica a ação realizada pelo MTA que gera o relatório como resultado da sua tentativa de enviar a mensagem a esse destinatário.

status

O valor do campo Status a partir do DSN. Esse é o código de status independente do transporte por destinatário que indica o status de entrega da mensagem.

diagnosticCode

O código de status emitido pelo MTA de relatório. Esse é o valor do campo Diagnostic-Code a partir do DSN. Esse campo pode estar ausente no DSN (e, portanto, também ausente no JSON).

Veja a seguir um exemplo de um objeto que pode estar na lista bouncedRecipients.

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

Tipos de devolução

O objeto de devolução contém um tipo de devolução Undetermined, Permanent ou Transient. Os tipos de devolução Permanent e Transient também podem conter um dos vários subtipos de devolução.

Ao receber uma notificação de devolução com um tipo de devolução Transient, você poderá enviar e-mails para esse destinatário no futuro se o problema que gerava a mensagem de devolução for resolvido.

Quando você recebe uma notificação de devolução com um tipo de devolução Permanent, é improvável que possa enviar e-mails para esse destinatário no futuro. Por esse motivo, você deve remover imediatamente de sua listas de endereços o destinatário cujo endereço gerou a devolução.

nota

Quando ocorre uma devolução flexível (uma devolução relacionada a um problema temporário, como quando a caixa de entrada do destinatário está cheia) o Amazon SES tenta enviar o e-mail durante determinado período. No fim desse período, se o Amazon SES ainda assim não conseguir entregar o e-mail, deixará de tentar.

O Amazon SES fornece notificações para devoluções definitivas, bem como para devoluções flexíveis que tenha parado de tentar entregar. Se quiser receber uma notificação sempre que ocorrer uma devolução flexível, habilite a publicação de eventos e configure-a para enviar notificações quando ocorrerem eventos de atraso de entrega.

bounceType bounceSubType Descrição
Undetermined Undetermined

O provedor de e-mail do destinatário enviou uma mensagem de devolução. A mensagem de devolução não contêm informações suficientes para o Amazon SES determinar o motivo da devolução. O e-mail de devolução, que foi enviado ao endereço no cabeçalho Return-Path do e-mail que provocou a devolução, pode conter informações adicionais sobre o problema que fez o e-mail ser devolvido.

Permanent General

O provedor de e-mail do destinatário enviou uma mensagem de devolução definitiva.

Importante

Quando você recebe esse tipo de notificação de devolução, deve remover imediatamente o endereço de e-mail do destinatário de sua lista de endereços. O envio de mensagens para endereços que geram devoluções definitivas pode afetar negativamente sua reputação como remetente. Se continuar a enviar e-mails para endereços que geram devoluções definitivas, provavelmente teremos de pausar o envio de e-mails subsequentes. Consulte Usando a lista de supressão em SES nível de conta da Amazon.

Permanent NoEmail

Não foi possível recuperar o endereço de e-mail do destinatário da mensagem de devolução.

Permanent Suppressed

O endereço de e-mail do destinatário está na lista de supressão do Amazon SES porque tem um histórico recente de gerar devoluções definitivas. Para substituir a lista de supressão global, consulte Usando a lista de supressão em SES nível de conta da Amazon.

Permanent OnAccountSuppressionList

O Amazon SES suprimiu o envio para este endereço porque ele está na lista de supressão no nível da conta. Isso não conta para sua métrica de taxa de devolução.

Transient General

O provedor de e-mail do destinatário enviou uma mensagem de devolução genérica. Você pode enviar uma mensagem para o mesmo destinatário no futuro se o problema que gerou a mensagem de devolução for resolvido.

nota

Se enviar um e-mail para um destinatário que tem uma regra de resposta automática (como uma mensagem "fora do escritório"), você poderá receber esse tipo de notificação. Mesmo que a resposta tenha um tipo de notificação Bounce, o Amazon SES não contabiliza respostas automáticas ao calcular a taxa de devolução para sua conta.

Transient MailboxFull

O provedor de e-mail do destinatário enviou uma mensagem de devolução porque a caixa de entrada do destinatário está cheia. Você poderá enviar mensagens para esse mesmo destinatário no futuro quando a caixa postal não estiver mais cheia.

Transient MessageTooLarge

O provedor de e-mail do destinatário enviou uma mensagem de devolução porque a mensagem que você enviou era muito grande. Você poderá enviar uma mensagem a esse mesmo destinatário se diminuir o tamanho da mensagem.

Transient ContentRejected

O provedor de e-mail do destinatário enviou uma mensagem de devolução porque o conteúdo da mensagem que você enviou não é permitido pelo provedor. Você poderá enviar uma mensagem para esse mesmo destinatário se alterar o conteúdo da mensagem.

Transient AttachmentRejected

O provedor de e-mail do destinatário enviou uma mensagem de devolução porque a mensagem continha um anexo inaceitável. Por exemplo, alguns provedores de e-mail podem rejeitar mensagens com anexos de determinado tipo de arquivo ou mensagens com anexos muito grandes. Você poderá enviar uma mensagem para esse mesmo destinatário se remover ou alterar o conteúdo da mensagem.

Objeto de reclamação

O objeto JSON que contém informações sobre reclamações tem os campos a seguir.

Nome do campo Descrição
complainedRecipients

Uma lista que contém informações sobre os destinatários que podem ter sido responsáveis pela reclamação. Para obter mais informações, consulte Destinatários que reclamaram.

timestamp

A data e a hora, no formato ISO 8601, em que o ISP enviou a notificação de reclamação. A data e a hora nesse campo podem não ser iguais à data e à hora em que o Amazon SES recebeu a notificação.

feedbackId

Um ID exclusivo associado à reclamação.

complaintSubType

O valor do campo complaintSubType pode ser nulo ou OnAccountSuppressionList. Se o valor for OnAccountSuppressionList, o Amazon SES aceitou a mensagem, mas não tentou enviá-la porque ela estava na lista de supressão no nível da conta.

Além disso, se um relatório de feedback estiver conectado à reclamação, os campos a seguir poderão estar presentes.

Nome do campo Descrição
userAgent

O valor do campo User-Agent do relatório de feedback. Isso indica o nome e versão do sistema que gerou o relatório.

complaintFeedbackType

O valor do campo Feedback-Type do relatório de feedback recebido do ISP. Aí está contido o tipo de feedback.

arrivalDate

O valor do campo Arrival-Date ou Received-Date do relatório de feedback (no formato ISO8601). Esse campo pode estar ausente no relatório (e, portanto, também ausente no JSON).

Veja a seguir um exemplo de um 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" }

Destinatários que reclamaram

O campo complainedRecipients contém uma lista de destinatários que podem ter enviado a reclamação. Você deve usar essas informações para determinar qual destinatário enviou a reclamação e, em seguida, remover esse destinatário imediatamente de suas listas de endereços.

Importante

A maioria dos ISPs remove de sua notificação de reclamação o endereço de e-mail do destinatário que enviou a reclamação. Por esse motivo, essa lista contém informações sobre os destinatários que podem ter enviado a reclamação, com base nos destinatários da mensagem original e no ISP do qual recebemos a reclamação. O Amazon SES realiza uma consulta para a mensagem original para determinar a lista de destinatários.

Os objetos JSON desta lista contêm o seguinte campo.

Nome do campo Descrição
emailAddress

O endereço de e-mail do destinatário.

Veja a seguir um exemplo de um objeto de uma reclamação do destinatário.

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

Por conta desse comportamento, você pode ter mais certeza quais endereços de e-mail reclamaram sobre sua mensagem se limitar seu envio para uma mensagem por destinatário (em vez de enviar uma mensagem com 30 diferentes endereços de e-mail na linha CCO).

Tipos de reclamação

Você pode ver os seguintes tipos de reclamação no campo complaintFeedbackType conforme atribuído pelo ISP que gerou o relatório, de acordo com o site da Internet Assigned Numbers Authority:

  • abuse– Indica e-mail não solicitado ou algum outro tipo de abuso de e-mail.

  • auth-failure– Relatório de falha de autenticação de e-mail.

  • fraud– Indica algum tipo de atividade de phishing ou fraude.

  • not-spam: indica que a entidade que fornece o relatório não considera a mensagem spam. Isso pode ser usado para corrigir uma mensagem que foi incorretamente marcada ou classificada como spam.

  • other– Indica qualquer outro feedback que não se adequa a outros tipos registrados.

  • virus– Reporta que um vírus foi encontrado na mensagem de origem.

Objeto de entrega

O objeto JSON que contém informações sobre entregas sempre tem os campos a seguir.

Nome do campo Descrição
timestamp

A hora em que o Amazon SES entregou o e-mail ao servidor de e-mail do destinatário (em formato ISO8601).

processingTimeMillis

O tempo em milissegundos desde quando o Amazon SES aceitou a solicitação do remetente até a transmissão da mensagem para o servidor de e-mail do destinatário.

recipients

Uma lista dos destinatários pretendidos do e-mail ao qual a notificação de entrega se aplica.

smtpResponse

A mensagem de resposta SMTP do ISP remoto que aceitou o e-mail do Amazon SES. Essa mensagem varia de acordo com o e-mail, o servidor de e-mail de recebimento e o ISP de recebimento.

reportingMTA

O nome de host do servidor de e-mail do Amazon SES que enviou o e-mail.

remoteMtaIp

O endereço IP da MTA à qual o Amazon SES entregou o e-mail.

Veja a seguir um exemplo de um 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" }