Nếu đã chỉ định 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ý mẫu Handlebars cho email.
Cấu trúc bộ sưu tập mẫu
Gán 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 mà 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 đề 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.
- tệp đính kèm: 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 đã mã hoá, URI dữ liệu và nút MIME được tạo sẵn (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).
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
Để phân phố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"
},
},
});
Mẫu một phần
Bạn có thể soạn các mẫu bằng cách sử dụng phần có thể sử 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 sử dụng trong môi trường của chính trường đó. Ví dụ: một phần có tên 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 đưa phần này vào bằng cách tham chiếu tên của phần đó (mã tài liệu):
<p>This is my main template content, but it will use a common footer.</p>
{{> footer }}