Use modelos do Handlebars com a extensão Trigger Email

Se você especificou um parâmetro "Coleta de modelos" durante a configuração da extensão, poderá criar e gerenciar modelos do Handlebars para seus e-mails.

Estrutura de coleção de modelos

Dê a cada documento um ID memorável que você usa como nome de modelo nos documentos que você grava em sua coleção de modelos.

O documento modelo pode incluir qualquer um dos seguintes campos:

  • subject: Uma string de modelo para o assunto do email.
  • text: Uma string de modelo para o conteúdo de texto simples do email.
  • html: uma string de modelo para o conteúdo HTML do email.
  • amp: uma string de modelo para o conteúdo AMP4EMAIL do email.
  • anexos: uma matriz de anexos com sequências de modelos como valores; Opções do Nodemailer suportadas: string utf-8, tipo de conteúdo personalizado, URL, string codificada, URI de dados e nó MIME pré-gerado (esteja ciente de que seu email não tem acesso ao sistema de arquivos do servidor em nuvem).

Um modelo de exemplo pode ter um ID a following e conteúdo como:

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

Envie e-mails usando modelos

Para entregar emails usando modelos, ao adicionar documentos à sua coleção de emails, inclua um campo template com name e propriedades data . Por exemplo, usando nosso following modelo acima:

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

Parciais de modelo

Você pode compor modelos usando parciais reutilizáveis ​​especificando {partial: true} no documento do modelo. Cada um dos campos de dados padrão ( subject , html , text e amp ) será definido como parcial usado apenas em seu próprio ambiente. Por exemplo, um footer chamado parcial pode ter dados como:

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

Em outro modelo, inclua o parcial referenciando seu nome (ID do documento):

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

{{> footer }}