اگر در طول پیکربندی افزونه، پارامتر "مجموعه قالبها" را مشخص کرده باشید، میتوانید قالبهای Handlebars را برای ایمیلهای خود ایجاد و مدیریت کنید.
ساختار مجموعه الگو
به هر سند یک شناسه (ID) به یاد ماندنی اختصاص دهید که از آن به عنوان نام الگو در اسنادی که در مجموعه الگوهای خود مینویسید، استفاده کنید.
سند الگو میتواند شامل هر یک از فیلدهای زیر باشد:
- موضوع: یک رشته الگو برای موضوع ایمیل.
- متن: یک رشته الگو برای محتوای متن ساده ایمیل.
- html: یک رشته الگو برای محتوای HTML ایمیل.
- amp: یک رشته الگو برای محتوای AMP4EMAIL ایمیل.
- پیوستها: آرایهای از پیوستها با رشتههای الگو به عنوان مقادیر؛ گزینههای پشتیبانیشده در Nodemailer : رشته utf-8، نوع محتوای سفارشی، URL، رشته کدگذاریشده، URI داده و گره MIME از پیش تولید شده (توجه داشته باشید که ایمیل شما به سیستم فایل سرور ابری دسترسی ندارد).
یک الگوی نمونه ممکن است دارای شناسه following باشد:
{
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}}"
}
]
}
ارسال ایمیل با استفاده از قالبها
برای ارسال ایمیل با استفاده از قالبها، هنگام افزودن اسناد به مجموعه ایمیل خود، یک فیلد template با ویژگیهای name و data اضافه کنید. به عنوان مثال، از الگوی following از بالا استفاده کنید:
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"
},
},
});
بخشهای الگو
شما میتوانید با مشخص کردن {partial: true} در سند الگو، قالبها را با استفاده از partialهای قابل استفاده مجدد بسازید. هر یک از فیلدهای داده استاندارد ( subject ، html ، text و amp ) به عنوان یک partial تعریف میشوند که فقط در محیط خودش استفاده میشود. برای مثال، یک partial به نام footer ممکن است دادههایی مانند موارد زیر داشته باشد:
{
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"
}
در الگوی دیگری، با ارجاع به نام آن (شناسه سند)، جزئی را وارد کنید:
<p>This is my main template content, but it will use a common footer.</p>
{{> footer }}