Nếu đã chỉ định một tham số "Bộ sưu tập mẫu" trong quá trình định cấu hình tiện ích, 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 ghi vào 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: Một chuỗi mẫu cho nội dung HTML của email.
- amp: Một chuỗi mẫu cho nội dung AMP4EMAIL của email.
- attachments: Một mảng các tệp đính kèm có chuỗi mẫu làm giá trị; Các lựa chọn của 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 (lưu ý rằng email của bạn không có quyền truy cập vào hệ thống tệp của máy chủ đám mây).
Ví dụ: một mẫu 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ó thuộc tính name
và data
. 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"
},
},
});
Thành phần mẫu
Bạn có thể tạo mẫu bằng cách sử dụng các 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
, text
và amp
) sẽ được xác định là một phần chỉ được dùng trong môi trường riêng. Ví dụ: một phần có tên là footer
có thể có dữ liệu như:
{
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 một 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 }}