אם ציינת את הפרמטר 'Templates collection' במהלך ההגדרה של התוסף, אפשר ליצור ולנהל תבניות של Handlebars להודעות האימייל.
המבנה של אוסף התבניות
נותנים לכל מסמך מזהה קל לזכור, שישמש כשם התבנית במסמכים שתכתבו בקולקציית התבניות.
מסמך התבנית יכול לכלול את השדות הבאים:
- subject: מחרוזת תבנית לנושא האימייל.
- text: מחרוזת תבנית לתוכן הטקסט של הודעת האימייל.
- html: מחרוזת תבנית לתוכן ה-HTML של האימייל.
- amp: מחרוזת תבנית לתוכן האימייל של AMP4EMAIL.
- attachments: מערך של קבצים מצורפים עם מחרוזות תבנית כערכים. אפשרויות 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}
במסמך התבנית. כל אחד משדות הנתונים הרגילים (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 }}