إذا حدّدت مَعلمة "مجموعة النماذج" أثناء إعداد الـ إضافة، يمكنك إنشاء نماذج Handlebars وإدارة النماذج لرسائلك الإلكترونية.
بنية مجموعة النماذج
امنح كل مستند معرّفًا يسهل تذكّره واستخدِمه كـ اسم النموذج في المستندات التي تكتبها لمجموعة النماذج.
يمكن أن يتضمّن مستند النموذج أيًا من الحقول التالية:
- الموضوع: سلسلة نموذج لموضوع الرسالة الإلكترونية
- النص: سلسلة نموذج لمحتوى الرسالة الإلكترونية النصي العادي
- html: سلسلة نموذج لمحتوى الرسالة الإلكترونية بتنسيق HTML
- amp: سلسلة نموذج لمحتوى الرسالة الإلكترونية بتنسيق AMP4EMAIL
- المرفقات: مصفوفة من المرفقات تتضمّن سلاسل نموذج كقيم. تتوفّر خيارات Nodemailer التالية: سلسلة بترميز UTF-8 ونوع محتوى مخصّص وعنوان URL وسلسلة بترميز Base64 ومعرّف موارد البيانات (Data 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"
},
},
});
النماذج الجزئية
يمكنك إنشاء نماذج باستخدام نماذج جزئية قابلة لإعادة الاستخدام partials
من خلال تحديد {partial: true} في مستند النموذج. سيتم تعريف كل حقل من حقول البيانات العادية (subject وhtml وtext وamp) كنموذج جزئي لا يُستخدَم إلا في بيئته الخاصة. على سبيل المثال، قد يتضمّن نموذج جزئي باسم 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 }}