Ir para o conteúdo

Como faço para solucionar falhas de entrega de e-mail com as APIs SendTemplatedEmail do Amazon SES?

3 minuto de leitura
0

Usei a operação de API SendTemplatedEmail do Amazon Simple Email Service (Amazon SES) para enviar e-mails. No entanto, o Amazon SES não entregou os e-mails.

Breve descrição

Quando você usa um modelo de e-mail, o Amazon SES valida se os dados do modelo enviados incluem as variáveis necessárias. Se os dados do modelo contiverem variáveis fora de conformidade ou se houver variáveis ausentes, o Amazon SES não poderá entregar o e-mail.

Resolução

Use o Amazon SNS para configurar notificações de eventos de falha de renderização. Em seguida, revise as notificações de eventos de falha de renderização para descobrir por que o Amazon SES não entrega e-mails quando você usa a operação de API SendTemplatedEmail.

Depois de configurar as notificações de eventos de falha de renderização, você receberá uma notificação do Amazon SNS quando houver erro em uma entrega enviada a partir de um modelo de e-mail. A mensagem de erro da notificação inclui informações sobre a variável de modelo que levou à falha de renderização.

Por exemplo, o modelo a seguir contém as variáveis name e favoritecolor:

{  "Template": {
    "TemplateName": "ExampleTemplate",
    "SubjectPart": "Hello, {{name}}!",
    "HtmlPart": "<h1>Hello {{name}},</h1><p>Your favorite color is {{favoritecolor}}.</p>",
    "TextPart": "Dear {{name}},\r\nYour favorite color is {{favoritecolor}}."
  }
}

Se você enviar os dados do modelo anterior, o Amazon SES não poderá entregar o e-mail. Isso ocorre porque a variável favoritecolor está ausente no modelo.

Importante: Incluir variáveis extras no modelo, como ** favoritenumber**, não causa um erro. No entanto, todas as variáveis incluídas no modelo devem ter uma contraparte exata com distinção entre maiúsculas e minúsculas nos dados do modelo.

Exemplo de modelo com variáveis corretas:

"TemplateData": "{ \"name\":\"Jane\", \"favoritenumber\": \"10\" }"

Exemplo de notificação de evento de falha de renderização:

{    "eventType": "Rendering Failure",
    "mail": {
        "timestamp": "2019-09-09T04:38:19.788Z",
        "source": "sender@example.com",
        "sourceArn": "arn:aws:ses:us-west-2:1234567890123:identity/sender@example.com",
        "sendingAccountId": "1234567890123",
        "messageId": "01010161a734a0eb-a706827a-3bda-490f-8eaa-63cf4b00d10c-000000",
        "destination": [
            "receiver@example.com"
        ],
        "headersTruncated": false,
        "tags": {
            "ses:configuration-set": [
                "RenderFailure"
            ]
        }
    },
    "failure": {
        "errorMessage": "Attribute 'favoritecolor' is not present in the rendering data.",
        "templateName": "ExampleTemplate"
    }
}

Para evitar falhas de renderização, siga estas práticas recomendadas:

  • Verifique se a capitalização dos nomes das variáveis nos dados do modelo está correta. Os nomes das variáveis no modelo diferenciam maiúsculas de minúsculas.
  • Verifique se os dados do seu modelo incluem todas as variáveis no modelo.
  • Você deve enviar a mensagem de um endereço de e-mail ou domínio verificado, e o tamanho máximo da mensagem é de 10 MB.

Informações relacionadas

Using templates to send personalized email with the Amazon SES API (Uso de modelos para enviar e-mails personalizados com a API do Amazon SES)

Why don't the emails that I send through Amazon SES get delivered? (Por que os e-mails que eu envio pelo Amazon SES não são entregues?)

Amazon SES delivery problems (Problemas de entrega do Amazon SES)