Pourquoi l'envoi d'e-mails Amazon SES à l'aide de l'opération SendTemplatedEmail échoue-t-il ?

Dernière mise à jour : 25/03/2021

J'utilise l'opération SendTemplatedEmail pour envoyer des messages à partir de mon compte Amazon Simple Email Service (Amazon SES). Toutefois, certains e-mails ne sont jamais envoyés. Comment savoir d'où vient le problème ?

Résolution

Lorsque vous utilisez un modèle d'e-mail, Amazon SES vérifie que les données du modèle que vous envoyez incluent les variables requises dans le modèle. Si les données du modèle contiennent des variables non conformes ou s'il en manque certaines, Amazon SES ne peut pas envoyer l'e-mail. Cet événement est appelé « Rendering Failure » (échec de restitution).

Pour comprendre pourquoi un e-mail n'a pas été envoyé à l'aide de l'opération SendTemplatedEmail, configurez des notifications d'événement Rendering Failure à l'aide d'Amazon Simple Notification Service (Amazon SNS).

Une fois que vous avez configuré des notifications d'événement Rendering Failure, vous recevrez une notification Amazon SNS en cas d'échec de la livraison d'un e-mail basé sur un modèle. Le message d'erreur de notification contient des informations sur la variable de modèle qui a conduit à l'échec de restitution.

Par exemple, ce modèle contient les variables name et 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}}."
  }
}

Si vous envoyez les données de modèle suivantes, Amazon SES ne peut pas envoyer l'e-mail, car il manque la variable favoritecolor du modèle.

Important : l'inclusion de variables supplémentaires non présentes dans le modèle, comme favoritenumber, ne provoque pas d'erreur. Cependant, toutes les variables incluses dans le modèle doivent avoir une contrepartie exacte sensible à la casse dans les données du modèle.

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

Avec les notifications d'événement Rendering Failure, vous recevrez une notification d'échec similaire à ce qui suit :

{
    "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"
    }
}

Suivez ces instructions pour éviter tout événement de Rendering Failure :

  • Vérifiez la casse des noms de variables dans les données de votre modèle. Les noms de variables dans le modèle sont sensibles à la casse.
  • Vérifiez que les données de votre modèle comportent toutes les variables du modèle.

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?