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 JavaScript Object Notation (JSON). 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 os dois casos; o SES não oferece garantias de pedidos ou lotes para notificações enviadas pelo 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.

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

  • O SES substitui 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 SES contém os seguintes campos.

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 ISO86 01).

messageId

Uma ID exclusiva que o SES atribuiu à mensagem. O SES retornou esse valor para você quando você enviou a mensagem.

nota

Essa ID de mensagem foi atribuída pelo 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 SES.

sendingAccountId

O Conta da AWS ID 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 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 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 dentro do headers objeto é da mensagem original que você passou para o SES. O ID da mensagem que o SES atribuiu posteriormente à mensagem está no messageId campo do mail objeto.

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 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 salto, conforme determinado pelo SES. Para obter mais informações, consulte Tipos de devolução.

bounceSubType

O subtipo do salto, conforme determinado pelo 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 ISO86 01). Observe que essa é a hora em que a notificação foi enviada pelo ISP, e não a hora em que ela foi recebida pelo SES.

feedbackId

Um ID exclusivo para a devolução.

Se o SES conseguiu entrar em contato com a Autoridade de Transferência de Mensagens (MTA) remota, o campo a seguir também estará presente.

Nome do campo Descrição
remoteMtaIp

O endereço IP do MTA para o qual a 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 ressalto contém um tipo de ressalto deUndetermined, Permanent (rígido) ou Transient (suave). Os tipos de salto Permanent Transient(rígido) e (suave) também podem conter um dos vários subtipos de salto.

Ao receber uma notificação de devolução com um tipo de devolução Transient (flexível), você poderá enviar um e-mail para esse destinatário no futuro se o problema que causou a rejeição da mensagem for resolvido.

Quando você recebe uma notificação de devolução com um tipo de devolução Permanent (difícil), é improvável que você consiga enviar um e-mail 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 suave (uma devolução relacionada a um problema temporário, como a caixa de entrada do destinatário estar cheia), a SES tenta reenviar o e-mail por um determinado período de tempo. Ao final desse período, se a SES ainda não conseguir entregar o e-mail, ela para de tentar.

O SES fornece notificações para devoluções rígidas e para devoluções suaves que ele parou de tentar fornecer. 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 continha informações suficientes para que o SES determinasse o motivo da rejeiçã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 Como usar a lista de supressão do Amazon SES por conta.

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 SES porque tem um histórico recente de produção de devoluções difíceis. Para substituir a lista de supressão global, consulte Como usar a lista de supressão do Amazon SES por conta.

Permanent OnAccountSuppressionList

O SES suprimiu o envio para esse 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.

Permanent UnsubscribedRecipient

Esse tipo de rejeição ocorre quando o contato do destinatário cancela a assinatura do tópico e um e-mail é enviado a ele usando as opções de gerenciamento de listas. A SES respeita a preferência de contato e não tenta a entrega. Além disso, essa rejeição não afeta a reputação do remetente, pois a entrega não foi tentada, nem o contato do destinatário é adicionado a uma lista de supressão devido à rejeição.

dica

É recomendável que você se inscreva em UnsubscribedRecipient eventos para evitar o envio contínuo para destinatários não inscritos. ConsidereUso do gerenciamento de listas. O gerenciamento de listas deve ser a fonte da verdade para sua lista de assinantes. Do ponto de vista da fiscalização do SES, se você continuar enviando para destinatários suprimidos ou não inscritos, terá a reputação de não seguir as melhores práticas de envio de e-mails.

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çãoBounce, o SES não conta as respostas automáticas ao calcular a taxa de rejeição da 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 as mesmas da data e hora em que o 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 forOnAccountSuppressionList, a 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 Received-Date campo Arrival-Date ou do relatório de feedback (no formato ISO86 01). 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, removê-lo imediatamente de suas listas de e-mails.

Importante

A maioria ISPs remove o endereço de e-mail do destinatário que enviou a reclamação da notificação de 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 SES realiza uma pesquisa na mensagem original para determinar essa 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 a SES entregou o e-mail ao servidor de e-mail do destinatário (no formato ISO86 01).

processingTimeMillis

O tempo em milissegundos entre o momento em que o SES aceitou a solicitação do remetente e 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 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 do host do servidor de e-mail SES que enviou o e-mail.

remoteMtaIp

O endereço IP do MTA para o qual a 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" }