Utiliser des modèles Handlebars avec l'extension Trigger Email (Adresse e-mail de déclenchement)

Si vous avez spécifié une "collection de modèles" lors de la configuration vous pouvez créer et gérer des modèles de Handlebars des modèles pour vos e-mails.

Structure de la collection de modèles

Attribuez à chaque document un ID facile à retenir que vous utiliserez comme nom de modèle dans les documents que vous écrivez dans votre collection de modèles.

Le document de modèle peut inclure l'un des champs suivants:

  • subject:modèle de chaîne pour l'objet de l'e-mail.
  • text:chaîne de modèle pour le contenu en texte brut de l'e-mail.
  • html:modèle de chaîne pour le contenu HTML de l'e-mail.
  • amp:modèle de chaîne pour le contenu AMP4EMAIL de l'e-mail.
  • attachments : tableau d'éléments joints avec des chaînes de modèle comme valeurs. Options Nodemailer acceptées : chaîne utf-8, type de contenu personnalisé, URL, chaîne encodée, URI de données et nœud MIME prégénéré (notez que votre e-mail n'a pas accès au système de fichiers du serveur cloud).

Un exemple de modèle peut avoir l'ID following et un contenu tel que:

{
  subject: "@{{username}} is now following you!",
  html: "Just writing to let you know that <code>@{{username}}</code> ({{name}}) is now following you.",
  attachments: [
    {
     filename: "{{username}}.jpg",
     path: "{{imagePath}}"
    }
  ]
}

Envoyer des e-mails à l'aide de modèles

Pour distribuer des e-mails à l'aide de modèles, lorsque vous ajoutez des documents à votre collection de messagerie, Incluez un champ template avec les propriétés name et data. Par exemple, en utilisant notre modèle following ci-dessus :

admin
  .firestore()
  .collection("MAIL_COLLECTION")
  .add({
    toUids: ["abc123"],
    template: {
      name: "following",
      data: {
        username: "ada",
        name: "Ada Lovelace",
        imagePath: "https://example.com/path/to/file/image-name.jpg"
      },
    },
  });

Éléments partiels du modèle

Vous pouvez créer des modèles à l'aide de parties réutilisables en spécifiant {partial: true} dans le document de modèle. Chacune des normes les champs de données (subject, html, text et amp) seront définis comme partiellement uniquement dans son propre environnement. Par exemple, un élément partiel appelé footer peut contiennent des données telles que:

{
  partial: true,
  html: "<p>This mail was sent by ExampleApp, Inc. <a href='https://example.com/unsubscribe'>Unsubscribe</a></p>",
  text: "This mail was sent by ExampleApp, Inc. Unsubscribe here: https://example.com/unsubscribe"
}

Dans un autre modèle, incluez l'élément partiel en référençant son nom (ID du document):

<p>This is my main template content, but it will use a common footer.</p>

{{> footer }}