Menggunakan template Handlebar dengan ekstensi Memicu Email

Jika Anda menentukan parameter "Koleksi template" selama konfigurasi ekstensi, Anda dapat membuat dan mengelola template Handlebar untuk email Anda.

Struktur koleksi template

Untuk setiap dokumen, berikan ID yang mudah diingat yang digunakan sebagai nama template di dokumen yang Anda tulis ke koleksi template.

Dokumen template dapat berisi salah satu kolom berikut:

  • subject: String template untuk subjek email.
  • text: String template untuk konten teks biasa pada email.
  • html: String template untuk konten HTML pada email.
  • amp: String template untuk konten AMP4EMAIL pada email.
  • attachments: Array lampiran dengan string template sebagai nilai; Opsi nodemailer yang didukung: string utf-8, jenis konten kustom, URL, string yang dienkode, URI data, dan node MIME yang telah dibuat sebelumnya (perhatikan bahwa email Anda tidak memiliki akses ke sistem file server cloud).

Template contoh dapat memiliki ID following dan konten seperti:

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

Mengirim email menggunakan template

Untuk mengirimkan email menggunakan template, saat menambahkan dokumen ke koleksi email Anda, sertakan kolom template dengan properti name dan data. Misalnya, menggunakan template following dari atas:

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

Parsial Template

Anda dapat menulis template menggunakan parsial yang dapat digunakan kembali dengan menentukan {partial: true} dalam dokumen template. Setiap kolom data standar (subject, html, text, dan amp) akan ditentukan sebagai parsial yang hanya digunakan di lingkungannya sendiri. Misalnya, suatu parsial yang disebut footer dapat memiliki data seperti:

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

Di template lain, sertakan parsial dengan merujuk namanya (ID dokumen):

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

{{> footer }}