Utilizzare i modelli Handlebars con l'estensione Trigger Email

Se hai specificato un parametro "Raccolta di modelli" durante la configurazione dell'estensione, puoi creare e gestire modelli Handlebars per le tue email.

Struttura della raccolta di modelli

Assegna a ogni documento un ID facile da ricordare da utilizzare come nome del modello nei documenti che scrivi nella raccolta di modelli.

Il documento del modello può includere uno dei seguenti campi:

  • subject: una stringa modello per l'oggetto dell'email.
  • text: una stringa modello per i contenuti in testo normale dell'email.
  • html: una stringa modello per i contenuti HTML dell'email.
  • amp: una stringa modello per i contenuti AMP4EMAIL dell'email.
  • attachments: un array di allegati con stringhe di modello come valori; opzioni Nodemailer supportate: stringa UTF-8, tipo di contenuto personalizzato, URL, stringa codificata, URI dati e nodo MIME pregenerato (tieni presente che la tua email non ha accesso al file system del server cloud).

Un modello di esempio potrebbe avere un ID following e contenuti come:

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

Inviare email utilizzando i modelli

Per inviare email utilizzando i modelli, quando aggiungi documenti alla raccolta di posta, includere un campo template con le proprietà name e data. Ad esempio, utilizzando il nostro modello following riportato sopra:

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"
      },
    },
  });

Particolari del modello

Puoi comporre i modelli utilizzando parti riutilizzabili specificando {partial: true} nel documento del modello. Ciascuno dei campi di dati standard (subject, html, text e amp) verrà definito come parziale e utilizzato solo nel proprio ambiente. Ad esempio, un valore parziale denominato footer potrebbe avere dati come:

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

In un altro modello, includi il parziale facendo riferimento al nome (ID documento):

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

{{> footer }}