Jeśli podczas konfigurowania rozszerzenia podano parametr „Kolekcja szablonów”, możesz tworzyć szablony Handlebars i zarządzać nimi w swoich e-mailach.
Struktura kolekcji szablonów
Przypisz do każdego dokumentu łatwy do zapamiętania identyfikator, który będziesz używać jako nazwę szablonu w dokumentach zapisywanych w kolekcji szablonów.
Dokument szablonu może zawierać dowolne z tych pól:
- subject: szablonowy ciąg znaków w temacie e-maila.
- text: ciąg tekstowy szablonu dla treści e-maila w postaci zwykłego tekstu.
- html: ciąg szablonu dla treści HTML e-maila.
- amp: ciąg znaków szablonu dla treści AMP4EMAIL e-maila.
- attachments: tablica załączników z wartościami w postaci ciągów znaków szablonu; obsługiwane opcje Nodemailer: ciąg znaków utf-8, niestandardowy typ treści, adres URL, zakodowany ciąg znaków, URI danych i wstępnie wygenerowany węzeł MIME (pamiętaj, że Twój e-mail nie ma dostępu do systemu plików serwera w chmurze).
Przykładowy szablon może mieć identyfikator following
i zawierać takie treści:
{
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}}"
}
]
}
Wysyłanie e-maili za pomocą szablonów
Aby wysyłać e-maile za pomocą szablonów, podczas dodawania dokumentów do kolekcji wiadomości dodaj pole template
z właściwościami name
i data
. Na przykład: używając szablonu following
z powyższego przykładu:
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"
},
},
});
Elementy szablonu
Szablony możesz tworzyć, używając elementów częściowych, które można ponownie wykorzystać. W tym celu w dokumencie szablonu musisz podać wartość {partial: true}
. Każde z standardowych pól danych (subject
, html
, text
i amp
) zostanie zdefiniowane jako częściowe i używane tylko w swoim własnym środowisku. Na przykład część o nazwie footer
może zawierać takie dane:
{
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"
}
W innym szablonie uwzględnij fragment, odwołując się do jego nazwy (identyfikatora dokumentu):
<p>This is my main template content, but it will use a common footer.</p>
{{> footer }}