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

Si vous avez spécifié un paramètre "Collection de modèles" lors de la configuration de l'extension, vous pouvez créer et gérer des modèles Handlebars 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:chaîne de modèle pour l'objet de l'e-mail.
  • text:chaîne de modèle pour le contenu en texte brut de l'e-mail.
  • html:chaîne de modèle pour le contenu HTML de l'e-mail.
  • amp: Chaîne de modèle 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 un ID de following et un contenu semblable à celui-ci:

{
  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 envoyer des e-mails à l'aide de modèles, lorsque vous ajoutez des documents à votre collection de messages, 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"
      },
    },
  });

Parties de modèle

Vous pouvez composer des modèles à l'aide de partiels réutilisables en spécifiant {partial: true} dans le document de modèle. Chacun des champs de données standards (subject, html, text et amp) sera défini comme un partiel utilisé uniquement dans son propre environnement. Par exemple, un partiel appelé footer peut contenir 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 la partie en faisant référence à son nom (ID de document):

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

{{> footer }}