Utiliser des modèles pour envoyer des e-mails personnalisés à l'aide de l'API Amazon SES - Amazon Simple Email Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utiliser des modèles pour envoyer des e-mails personnalisés à l'aide de l'API Amazon SES

Dans Amazon SES, vous pouvez envoyer un modèle d'e-mail en utilisant un modèle enregistré ou en utilisant un modèle intégré.

  • Modèle stocké : fait référence à la Templateressource créée et enregistrée dans SES à l'aide de l'CreateEmailTemplateopération de l'API Amazon SES v2. Le modèle contient l'objet et le corps de l'e-mail contenant des variables (espaces réservés) conformes au contenu écrit. Le nom du modèle stocké et les données dynamiques associées aux variables d'espace réservé du modèle sont fournis lors de l'appel des opérations d'API SendEmail ou de l'API SendBulkEmail v2.

    Les modèles enregistrés peuvent être facilement réutilisés et peuvent vous faire économiser du temps et des efforts lors de l'envoi de types d'e-mails similaires. Au lieu de créer chaque e-mail à partir de zéro, il vous suffit de créer la structure de base et le design une seule fois, puis de simplement mettre à jour le contenu dynamique du modèle.

  • Modèle intégré — La Template ressource n'est pas utilisée, mais l'objet et le corps de l'e-mail contenant des variables (espaces réservés) intégrés au contenu écrit, ainsi que les valeurs de ces variables d'espace réservé, sont fournis lors de l'appel des opérations de l'API SendEmail ou SendBulkEmail de l'API v2.

    Les modèles intégrés rationalisent le processus d'envoi d'e-mails en masse en éliminant le besoin de gérer les ressources des modèles dans votre compte SES et simplifient le processus d'intégration en vous permettant d'inclure le contenu du modèle directement dans la logique de votre application. Ils ne sont pas pris en compte dans la limite de 20 000 modèles par. Région AWS

Les limites suivantes s'appliquent lors de l'utilisation de modèles enregistrés :

  • Vous pouvez créer jusqu'à 20 000 modèles d'e-mails dans chacun d'eux Région AWS.

  • Chaque modèle peut avoir une taille maximale de 500 Ko, parties texte et HTML incluses.

La limite suivante s'applique lors de l'utilisation de modèles intégrés :

  • La taille de chaque fichier JSON d'entrée peut atteindre 1 Mo, y compris les parties texte et HTML.

Ce qui suit s'applique à la fois aux modèles stockés et aux modèles en ligne :

  • Le nombre de variables de remplacement pouvant être utilisées n'est pas limité.

  • Vous pouvez envoyer un e-mail à un maximum de 50 objets de destination lors de chaque appel à l'SendBulkEmailopération. L'Destinationobjet peut contenir plusieurs destinataires définis dans ToAddressesCcAddresses, et BccAddresses. Le nombre de destinations que vous pouvez contacter en un seul appel à l'API v2 peut être limité par le taux d'envoi maximal de votre compte. Pour de plus amples informations, veuillez consulter Gestion de vos limites d'envoi Amazon SES.

Ce chapitre inclut des procédures avec des exemples d'utilisation à la fois de modèles stockés et de modèles intégrés.

Note

Les procédures de cette section supposent aussi que vous avez déjà installé et configuré l' AWS CLI. Pour plus d'informations sur l'installation et la configuration du AWS CLI, consultez le guide de AWS Command Line Interface l'utilisateur.

(Facultatif) Partie 1 : Configuration des notifications d'événements d'échec de rendu

Si vous envoyez un e-mail qui contient un contenu de personnalisation non valide, Amazon SES peut initialement accepter le message, mais ne pourra pas le remettre. C'est pourquoi, si vous envisagez d'envoyer un e-mail personnalisé, vous devez configurer SES pour envoyer des notifications d'échec de rendu via Amazon SNS. Lorsque vous recevez une notification d'événement d'échec d'affichage, vous pouvez identifier le message qui comportait un contenu non valide, corriger les problèmes et renvoyer le message.

La procédure décrite dans cette section est facultative, mais vivement recommandée.

Pour configurer des notifications d'événement d'échec d'affichage
  1. Créer une rubrique Amazon SNS. Pour obtenir les procédures, veuillez consulter Création d'une rubrique dans le Guide du développeur Amazon Simple Notification Service.

  2. Abonnez-vous à la rubrique Amazon SNS. Par exemple, si vous voulez recevoir des notifications d'événement d'échec d'affichage par e-mail, abonnez un point de terminaison de messagerie (votre adresse e-mail) à la rubrique.

    Pour obtenir des procédures, veuillez consulter Abonnement à une rubrique dans le Guide du développeur Amazon Simple Notification Service.

  3. Suivez les procédures de Configurer une destination d'événement Amazon SNS pour la publication d'événements pour configurer vos jeux de configuration afin de publier des notifications d'événement d'échec d'affichage dans votre rubrique Amazon SNS.

(Facultatif) Partie 2 : Création d'un modèle d'e-mail

Si vous avez l'intention d'utiliser un modèle stocké, cette section explique comment utiliser l'opération API CreateEmailTemplateSES v2 pour créer le modèle. Vous pouvez ignorer cette étape si vous souhaitez utiliser un modèle intégré.

Cette procédure suppose que vous avez déjà installé et configuré l' AWS CLI. Pour plus d'informations sur l'installation et la configuration du AWS CLI, consultez le guide de AWS Command Line Interface l'utilisateur.

Pour créer le modèle
  1. Dans un éditeur de texte, créez un nouveau fichier et collez le code suivant en le personnalisant selon vos besoins.

    { "TemplateName": "MyTemplate", "TemplateContent": { "Subject": "Greetings, {{name}}!", "Text": "Dear {{name}},\r\nYour favorite animal is {{favoriteanimal}}.", "Html": "<h1>Hello {{name}},</h1><p>Your favorite animal is {{favoriteanimal}}.</p>" } }

    Ce code contient les propriétés suivantes :

    • TemplateName— Le nom de la Template ressource. Lorsque vous envoyez l'e-mail, vous faites référence à ce nom.

    • TemplateContent— Un conteneur pour les attributs suivants :

      • SubjectPart : ligne Objet de l'e-mail. Cette propriété peut contenir des balises de remplacement. Celles-ci utilisent le format suivant : {{tagname}}. Lorsque vous envoyez l'e-mail, vous pouvez attribuer une valeur à tagname pour chaque destination.

      • HtmlPart— Le corps HTML de l'e-mail. Cette propriété peut contenir des balises de remplacement. L'exemple précédent contient deux balises : {{name}} et {{favoriteanimal}}.

      • TextPart— Le corps du texte de l'e-mail. Les destinataires dont les clients de messagerie n'affichent pas de contenu HTML verront cette version de l'e-mail. Cette propriété peut également contenir des étiquettes de remplacement.

  2. Personnalisez l'exemple précédent pour l'adapter à vos besoins, puis enregistrez le fichier sous mytemplate.json.

  3. Sur la ligne de commande, tapez la commande suivante pour créer un nouveau modèle à l'aide de l'opération d'API CreateEmailTemplatev2 :

    aws sesv2 create-email-template --cli-input-json file://mytemplate.json

Partie 3 : Envoi de l'e-mail personnalisé

Vous pouvez utiliser les deux opérations d'API SES v2 suivantes pour envoyer des e-mails à l'aide de modèles stockés ou de modèles intégrés :

  • L'SendEmailopération est utile pour envoyer un e-mail personnalisé à un seul objet de destination. L'Destinationobjet API v2 peut contenir les BccAddressespropriétés ToAddressesCcAddresses, et. Ils peuvent être utilisés dans n'importe quelle combinaison et peuvent contenir une ou plusieurs adresses e-mail qui recevront le même e-mail.

  • L'SendBulkEmailopération est utile pour envoyer des e-mails uniques à plusieurs objets de destination en un seul appel à l'API v2.

Cette section fournit des exemples d'utilisation du modèle AWS CLI d'e-mail à l'aide de ces deux opérations d'envoi.

Envoi d'un modèle d'e-mail à un seul objet de destination

Vous pouvez utiliser cette SendEmailopération pour envoyer un e-mail à un ou plusieurs destinataires définis dans un seul objet de destination. Toutes les destinataires de l'objet Destination recevront le même e-mail.

Pour envoyer un modèle d'e-mail à un seul objet de destination
  1. Selon que vous souhaitez utiliser un modèle enregistré ou un modèle intégré, sélectionnez l'exemple de code correspondant à coller dans un éditeur de texte, en le personnalisant selon vos besoins.

    Stored template code example

    Notez que le modèle que vous avez créé à l'MyTemplateétape précédente est référencé comme valeur du TemplateName paramètre.

    { "FromEmailAddress": "Mary Major <mary.major@example.com>", "Destination": { "ToAddresses": [ "alejandro.rosalez@example.com", "jimmy.jet@example.com" ] }, "Content": { "Template": { "TemplateName": "MyTemplate", "TemplateData": "{ \"name\":\"Alejandro\", \"favoriteanimal\": \"alligator\" }" } }, "ConfigurationSetName": "ConfigSet" }

    Ce code contient les propriétés suivantes :

    • FromEmailAddress— L'adresse e-mail de l'expéditeur.

    • Destination : objet contenant les destinataires des e-mails définis dans les BccAddressespropriétés ToAddressesCcAddresses, et. Ils peuvent être utilisés dans n'importe quelle combinaison et peuvent contenir une ou plusieurs adresses e-mail qui recevront le même e-mail.

    • TemplateName— Le nom de la Template ressource à appliquer à l'e-mail.

    • TemplateData— Chaîne JSON échappée contenant des paires clé-valeur. Les clés correspondent aux variables définies dans les TemplateContent propriétés du modèle stocké, par exemple{{name}}. Les valeurs représentent le contenu qui remplace les variables.

    • ConfigurationSetName— Le nom du jeu de configuration à utiliser lors de l'envoi de l'e-mail.

      Note

      Nous vous recommandons d'utiliser un jeu de configurations qui est configuré pour publier les événements d'échec d'affichage dans Amazon SNS. Pour de plus amples informations, veuillez consulter (Facultatif) Partie 1 : Configuration des notifications d'événements d'échec de rendu.

    Inline template code example

    Notez que les TemplateContent propriétés (qui seraient normalement définies dans un modèle stocké) sont définies en ligne avec la TemplateData propriété qui en fait un modèle en ligne.

    { "FromEmailAddress": "Mary Major <mary.major@example.com>", "Destination": { "ToAddresses": [ "alejandro.rosalez@example.com", "jimmy.jet@example.com" ] }, "Content": { "Template": { "TemplateContent": { "Subject": "Greetings, {{name}}!", "Text": "Dear {{name}},\r\nYour favorite animal is {{favoriteanimal}}.", "Html": "<h1>Hello {{name}},</h1><p>Your favorite animal is {{favoriteanimal}}.</p>" }, "TemplateData": "{ \"name\":\"Alejandro\", \"favoriteanimal\": \"alligator\" }" } }, "ConfigurationSetName": "ConfigSet" }

    Ce code contient les propriétés suivantes :

    • FromEmailAddress— L'adresse e-mail de l'expéditeur.

    • Destination : objet contenant les destinataires des e-mails définis dans les BccAddressespropriétés ToAddressesCcAddresses, et. Ils peuvent être utilisés dans n'importe quelle combinaison et peuvent contenir une ou plusieurs adresses e-mail qui recevront le même e-mail.

    • TemplateContent— Un conteneur pour les attributs suivants :

      • SubjectPart : ligne Objet de l'e-mail. Cette propriété peut contenir des balises de remplacement. Celles-ci utilisent le format suivant : {{tagname}}. Lorsque vous envoyez l'e-mail, vous pouvez attribuer une valeur à tagname pour chaque destination.

      • HtmlPart— Le corps HTML de l'e-mail. Cette propriété peut contenir des balises de remplacement. L'exemple précédent contient deux balises : {{name}} et {{favoriteanimal}}.

      • TextPart— Le corps du texte de l'e-mail. Les destinataires dont les clients de messagerie n'affichent pas de contenu HTML verront cette version de l'e-mail. Cette propriété peut également contenir des étiquettes de remplacement.

    • TemplateData— Chaîne JSON échappée contenant des paires clé-valeur. Les clés correspondent aux variables définies dans les TemplateContent propriétés de ce fichier, par exemple{{name}}. Les valeurs représentent le contenu qui remplace les variables.

    • ConfigurationSetName— Le nom du jeu de configuration à utiliser lors de l'envoi de l'e-mail.

      Note

      Nous vous recommandons d'utiliser un jeu de configurations qui est configuré pour publier les événements d'échec d'affichage dans Amazon SNS. Pour de plus amples informations, veuillez consulter (Facultatif) Partie 1 : Configuration des notifications d'événements d'échec de rendu.

  2. Personnalisez l'exemple précédent pour l'adapter à vos besoins, puis enregistrez le fichier sous myemail.json.

  3. Sur la ligne de commande, tapez la commande API v2 suivante pour envoyer l'e-mail :

    aws sesv2 send-email --cli-input-json file://myemail.json

Envoi d'un modèle d'e-mail à plusieurs objets de destination

Vous pouvez utiliser cette SendBulkEmailopération pour envoyer un e-mail à plusieurs objets de destination en un seul appel à l'API SES v2. SES envoie un e-mail unique au ou aux destinataires de chaque Destinationobjet.

Pour envoyer un modèle d'e-mail à plusieurs objets de destination
  1. Selon que vous souhaitez utiliser un modèle enregistré ou un modèle intégré, sélectionnez l'exemple de code correspondant à coller dans un éditeur de texte, en le personnalisant selon vos besoins.

    Stored template code example

    Notez que le modèle que vous avez créé à l'MyTemplateétape précédente est référencé comme valeur du TemplateName paramètre.

    { "FromEmailAddress": "Mary Major <mary.major@example.com>", "DefaultContent": { "Template": { "TemplateName": "MyTemplate", "TemplateData": "{ \"name\":\"friend\", \"favoriteanimal\":\"unknown\" }" } }, "BulkEmailEntries": [ { "Destination": { "ToAddresses": [ "anaya.iyengar@example.com" ] }, "ReplacementEmailContent": { "ReplacementTemplate": { "ReplacementTemplateData": "{ \"name\":\"Anaya\", \"favoriteanimal\":\"angelfish\" }" } } }, { "Destination": { "ToAddresses": [ "liu.jie@example.com" ] }, "ReplacementEmailContent": { "ReplacementTemplate": { "ReplacementTemplateData": "{ \"name\":\"Liu\", \"favoriteanimal\":\"lion\" }" } } }, { "Destination": { "ToAddresses": [ "shirley.rodriguez@example.com" ] }, "ReplacementEmailContent": { "ReplacementTemplate": { "ReplacementTemplateData": "{ \"name\":\"Shirley\", \"favoriteanimal\":\"shark\" }" } } }, { "Destination": { "ToAddresses": [ "richard.roe@example.com" ] }, "ReplacementEmailContent": { "ReplacementTemplate": { "ReplacementTemplateData": "{}" } } } ], "ConfigurationSetName": "ConfigSet" }

    Ce code contient les propriétés suivantes :

    • FromEmailAddress— L'adresse e-mail de l'expéditeur.

    • DefaultContent— Un objet JSON contenant les TemplateData objets TemplateName et.

    • TemplateName— Le nom de la Template ressource à appliquer à l'e-mail.

    • TemplateData— Contient des paires clé-valeur qui seront utilisées si l'ReplacementEmailContentobjet contient un objet JSON vide dans la ReplacementTemplateData propriété. {}

    • BulkEmailEntries— Tableau contenant un ou plusieurs Destination objets.

    • Destination : objet contenant les destinataires des e-mails définis dans les BccAddressespropriétés ToAddressesCcAddresses, et. Ils peuvent être utilisés dans n'importe quelle combinaison et peuvent contenir une ou plusieurs adresses e-mail qui recevront le même e-mail.

    • ReplacementTemplateData— Chaîne JSON échappée contenant des paires clé-valeur. Les clés correspondent aux variables du modèle, par exemple{{name}}. Les valeurs représentent le contenu qui remplace les variables de l'e-mail. (Si la chaîne JSON est vide, indiquée par{}, les paires clé-valeur définies dans la TemplateData propriété de l'DefaultContentobjet seront utilisées.)

    • ConfigurationSetName— Le nom du jeu de configuration à utiliser lors de l'envoi de l'e-mail.

      Note

      Nous vous recommandons d'utiliser un jeu de configurations qui est configuré pour publier les événements d'échec d'affichage dans Amazon SNS. Pour de plus amples informations, veuillez consulter (Facultatif) Partie 1 : Configuration des notifications d'événements d'échec de rendu.

    Inline template code example

    Notez que les TemplateContent propriétés (qui seraient normalement définies dans un modèle stocké) sont définies en ligne avec la TemplateData propriété qui en fait un modèle en ligne.

    { "FromEmailAddress": "Mary Major <mary.major@example.com>", "DefaultContent": { "Template": { "TemplateContent": { "Subject": "Greetings, {{name}}!", "Text": "Dear {{name}},\r\nYour favorite animal is {{favoriteanimal}}.", "Html": "<h1>Hello {{name}},</h1><p>Your favorite animal is {{favoriteanimal}}.</p>" }, "TemplateData": "{ \"name\":\"friend\", \"favoriteanimal\":\"unknown\" }" } }, "BulkEmailEntries": [ { "Destination": { "ToAddresses": [ "anaya.iyengar@example.com" ] }, "ReplacementEmailContent": { "ReplacementTemplate": { "ReplacementTemplateData": "{ \"name\":\"Anaya\", \"favoriteanimal\":\"angelfish\" }" } } }, { "Destination": { "ToAddresses": [ "liu.jie@example.com" ] }, "ReplacementEmailContent": { "ReplacementTemplate": { "ReplacementTemplateData": "{ \"name\":\"Liu\", \"favoriteanimal\":\"lion\" }" } } }, { "Destination": { "ToAddresses": [ "shirley.rodriguez@example.com" ] }, "ReplacementEmailContent": { "ReplacementTemplate": { "ReplacementTemplateData": "{ \"name\":\"Shirley\", \"favoriteanimal\":\"shark\" }" } } }, { "Destination": { "ToAddresses": [ "richard.roe@example.com" ] }, "ReplacementEmailContent": { "ReplacementTemplate": { "ReplacementTemplateData": "{}" } } } ], "ConfigurationSetName": "ConfigSet" }

    Ce code contient les propriétés suivantes :

    • FromEmailAddress— L'adresse e-mail de l'expéditeur.

    • DefaultContent— Un objet JSON contenant les TemplateData objets TemplateContent et.

    • TemplateContent— Un conteneur pour les attributs suivants :

      • SubjectPart : ligne Objet de l'e-mail. Cette propriété peut contenir des balises de remplacement. Celles-ci utilisent le format suivant : {{tagname}}. Lorsque vous envoyez l'e-mail, vous pouvez attribuer une valeur à tagname pour chaque destination.

      • HtmlPart— Le corps HTML de l'e-mail. Cette propriété peut contenir des balises de remplacement. L'exemple précédent contient deux balises : {{name}} et {{favoriteanimal}}.

      • TextPart— Le corps du texte de l'e-mail. Les destinataires dont les clients de messagerie n'affichent pas de contenu HTML verront cette version de l'e-mail. Cette propriété peut également contenir des étiquettes de remplacement.

    • TemplateData— Contient des paires clé-valeur qui seront utilisées si l'ReplacementEmailContentobjet contient un objet JSON vide dans la ReplacementTemplateData propriété. {}

    • BulkEmailEntries— Tableau contenant un ou plusieurs Destination objets.

    • Destination : objet contenant les destinataires des e-mails définis dans les BccAddressespropriétés ToAddressesCcAddresses, et. Ils peuvent être utilisés dans n'importe quelle combinaison et peuvent contenir une ou plusieurs adresses e-mail qui recevront le même e-mail.

    • ReplacementTemplateData— Chaîne JSON échappée contenant des paires clé-valeur. Les clés correspondent aux variables définies dans les TemplateContent propriétés de ce fichier, par exemple{{name}}. Les valeurs représentent le contenu qui remplace les variables de l'e-mail. (Si la chaîne JSON est vide, indiquée par{}, les paires clé-valeur définies dans la TemplateData propriété de l'DefaultContentobjet seront utilisées.)

    • ConfigurationSetName— Le nom du jeu de configuration à utiliser lors de l'envoi de l'e-mail.

      Note

      Nous vous recommandons d'utiliser un jeu de configurations qui est configuré pour publier les événements d'échec d'affichage dans Amazon SNS. Pour de plus amples informations, veuillez consulter (Facultatif) Partie 1 : Configuration des notifications d'événements d'échec de rendu.

  2. Modifiez les valeurs dans le code ci-dessus selon vos besoins, puis enregistrez le fichier sous le nom mybulkemail.json.

  3. Sur la ligne de commande, tapez la commande API v2 suivante pour envoyer l'e-mail en masse :

    aws sesv2 send-bulk-email --cli-input-json file://mybulkemail.json