שימוש בתבניות כידון באמצעות התוסף Trigger Email (טריגרים באימייל)

אם הגדרתם פרמטר Templates collection (אוסף תבניות) במהלך ההגדרה של התוסף, תוכלו ליצור ולנהל תבניות של Handlebars templates עבור האימיילים שלכם.

מבנה של אוסף תבניות

צריך לתת לכל מסמך מזהה קל לזכירה שמשמש כשם התבנית במסמכים שכותבים לקולקציית התבניות.

מסמך התבנית יכול לכלול כל אחד מהשדות הבאים:

  • 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 }}