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

Lecture de 3 minute(s)
0

J'utilise l'opération SendTemplatedEmail pour envoyer des messages à partir de mon compte Amazon Simple Email Service (Amazon SES). Toutefois, Amazon SES ne transmet pas certains e-mails.

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

Utilisez Amazon Simple Notification Service (Amazon SNS) pour configurer les notifications d'événements d'échec de restitution. Consultez les notifications d'échec de restitution pour découvrir pourquoi Amazon SES n'envoie pas d'e-mail lorsque vous utilisez l'opération SendTemplatedEmail.

Une fois que vous avez configuré des notifications d'événement Rendering Failure, vous recevez 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 suivant 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 du modèle suivant, Amazon SES ne pourra pas envoyer l'e-mail. Cela est dû au fait que la variable favoritecolor est absente du modèle.

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

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

Avec les notifications d'événement Rendering Failure, vous recevez une notification d'échec similaire au message suivant :

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

Pour éviter les pannes de rendu, suivez ces instructions :

  • 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.

Informations connexes

Utilisation de modèles pour l'envoi d'e-mail personnalisé avec l'API Amazon SES

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an