Sử dụng mẫu Tay cầm cùng với phần mở rộng Email kích hoạt

Nếu bạn đã chỉ định tham số "Bộ sưu tập mẫu" trong quá trình định cấu hình tiện ích, thì bạn có thể tạo và quản lý các mẫu Handlebars cho email của mình.

Cấu trúc bộ sưu tập mẫu

Đặt cho mỗi tài liệu một mã nhận dạng dễ nhớ mà bạn dùng làm tên mẫu trong các tài liệu bạn viết cho bộ sưu tập mẫu.

Tài liệu mẫu có thể bao gồm bất kỳ trường nào sau đây:

  • subject: Chuỗi mẫu cho tiêu đề của email.
  • text: Chuỗi mẫu cho nội dung văn bản thuần tuý của email.
  • html: Chuỗi mẫu cho nội dung HTML của email.
  • amp: Chuỗi mẫu cho nội dung AMP4EMAIL của email.
  • attachments: Một mảng tệp đính kèm có chuỗi mẫu làm giá trị; Các tuỳ chọn Nodemailer được hỗ trợ: chuỗi utf-8, loại nội dung tuỳ chỉnh, URL, chuỗi được mã hoá, URI dữ liệu và nút MIME được tạo trước (xin lưu ý rằng email của bạn không quyền truy cập vào hệ thống tệp của máy chủ đám mây).

Một mẫu ví dụ có thể có mã nhận dạng là following và nội dung như sau:

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

Gửi email bằng mẫu

Để gửi email bằng mẫu, khi thêm tài liệu vào bộ sưu tập thư, hãy thêm trường template có các thuộc tính namedata. Ví dụ: sử dụng mẫu following ở trên:

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

Mẫu từng phần

Bạn có thể tạo mẫu bằng các mẫu từng phần có thể dùng lại bằng cách chỉ định {partial: true} trong tài liệu mẫu. Mỗi trường dữ liệu tiêu chuẩn (subject, html, textamp) sẽ được xác định là một mẫu từng phần chỉ được dùng trong môi trường riêng. Ví dụ: một mẫu từng phần có tên là footer có thể có dữ liệu như sau:

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

Trong một mẫu khác, hãy thêm mẫu từng phần bằng cách tham chiếu tên của mẫu đó (mã nhận dạng tài liệu):

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

{{> footer }}