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

אם ציינת את הפרמטר '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 }}