Jeśli podczas konfigurowania rozszerzenia podano parametr „Kolekcja szablonów”, można tworzyć szablony e-maili i zarządzać nimi za pomocą szablonów Handlebars.
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: ciąg szablonu tematu e-maila.
- text:ciąg szablonu dla treści e-maila w formacie zwykłego tekstu.
- html: ciąg szablonu dla treści HTML e-maila.
- amp: ciąg szablonu dla treści AMP4EMAIL w e-mailu.
- attachments: tablica załączników z ciągami szablonu jako wartościami; obsługiwane opcje Nodemailera: 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 Twój e-mail nie ma dostępu do systemu plików serwera w chmurze).
Przykładowy szablon może mieć identyfikator following
i zawartość taką jak:
{
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 przy użyciu szablonów
Aby dostarczać 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 following
szablon z przykładu powyżej:
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ą wielokrotnego użytku części, określając {partial: true}
w dokumencie szablonu. Każde ze standardowych pól danych (subject
, html
, text
i amp
) będzie zdefiniowane jako element częściowy używany tylko w swoim środowisku. Na przykład fragment o nazwie footer
może zawierać dane takie 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 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 }}