Jeśli została wybrana „kolekcja Szablony” podczas konfiguracji możesz tworzyć szablony funkcji Handlebars i nimi zarządzać szablonów e-maili.
Struktura kolekcji szablonów
Nadaj każdemu dokumentowi łatwy do zapamiętania identyfikator, którego użyjesz jako nazwy szablonu w dokumentów zapisanych w kolekcji szablonów.
Szablon dokumentu może zawierać dowolne z tych pól:
- subject: ciąg szablonu tematu e-maila.
- text: ciąg szablonu zawierający zwykły tekst e-maila.
- html: ciąg szablonu treści HTML e-maila.
- amp: ciąg szablonu zawartości AMP4EMAIL e-maila.
- attachments: tablica załączników z ciągami szablonów jako wartościami; Obsługiwane opcje Nodemailer: ciąg znaków utf-8, niestandardowy typ treści, URL, zakodowany ciąg znaków, identyfikator URI danych i wstępnie wygenerowany węzeł MIME (pamiętaj, że Twój adres e-mail nie ma dostępu do systemu plików serwera w chmurze).
Przykładowy szablon może mieć identyfikator following
i treści w rodzaju:
{
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 z użyciem szablonów
Aby dostarczać e-maile przy użyciu szablonów, podczas dodawania dokumentów do kolekcji poczty e-mail
uwzględnij pole template
z właściwościami name
i data
. Przykład:
przy użyciu powyższego szablonu 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"
},
},
});
Części szablonu
Możesz tworzyć szablony za pomocą części wielokrotnego użytku
przez określenie {partial: true}
w dokumencie szablonu. Każda ze standardowych
pola danych (subject
, html
, text
i amp
) zostaną zdefiniowane jako częściowe
jest używany wyłącznie
w jego własnym środowisku. Na przykład część o nazwie footer
może
Zawierają one takie dane jak:
{
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 część, podając jej nazwę (identyfikator dokumentu):
<p>This is my main template content, but it will use a common footer.</p>
{{> footer }}