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)