Struktura kolekcji szablonów
Nadaj każdemu dokumentowi łatwy do zapamiętania identyfikator, który będzie używany jako nazwa szablonu w dokumentach zapisywanych w kolekcji szablonów.
Dokument szablonu może zawierać dowolne z tych pól:
- subject (temat): ciąg szablonu dla tematu e-maila.
- text (tekst): ciąg szablonu dla treści e-maila w postaci zwykłego tekstu.
- html (HTML): ciąg szablonu dla treści e-maila w formacie HTML.
- amp (AMP): ciąg szablonu dla treści e-maila w formacie AMP4EMAIL.
- attachments (załączniki): tablica załączników z ciągami szablonów jako wartościami; obsługiwane opcje Nodemailer: ciąg utf-8, niestandardowy typ treści, adres URL, zakodowany ciąg, identyfikator URI danych i wstępnie wygenerowany węzeł MIME (pamiętaj, że e-mail nie ma dostępu do systemu plików serwera w chmurze).
Przykładowy szablon może mieć identyfikator following i taką treść:
{
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 poczty uwzględnij 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"
},
},
});
Szablony częściowe
Szablony możesz tworzyć za pomocą częściowych szablonów wielokrotnego użytku, określając {partial: true} w dokumencie szablonu. Każde ze standardowych pól danych (subject, html, text i amp) będzie zdefiniowane jako szablon częściowy używany tylko w swoim środowisku. Na przykład szablon częściowy 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 szablon częściowy, 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 }}