Utilizzare i modelli Handlebars con l'estensione Trigger Email

Se hai specificato una "raccolta Modelli" durante la configurazione del parametro Estensione, puoi creare e gestire modelli di manubri modelli per le tue email.

Struttura della raccolta di modelli

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

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

  • subject: una stringa modello per l'oggetto dell'email.
  • text: una stringa modello per i contenuti in testo non crittografato 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 quali:

{
  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 recapitare le email utilizzando i modelli, quando aggiungi documenti alla raccolta della posta: includi un campo template con proprietà name e data. Ad esempio: utilizzando il nostro modello following 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"
      },
    },
  });

Parziali del modello

Puoi comporre modelli utilizzando parti riutilizzabili specificando {partial: true} nel documento modello. Ciascuno dei i campi di dati (subject, html, text e amp) verranno definiti come utilizzate solo nel proprio ambiente. Ad esempio, una parte di nome footer potrebbe contengono dati quali:

{
  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 la parziale facendo riferimento al suo nome (ID documento):

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

{{> footer }}