Si vous avez spécifié une "collection de modèles" lors de la configuration vous pouvez créer et gérer des modèles de Handlebars des modèles pour vos e-mails.
Structure de la collection de modèles
Attribuez à chaque document un ID facile à retenir que vous utiliserez comme nom de modèle dans les documents que vous écrivez dans votre collection de modèles.
Le document de modèle peut inclure l'un des champs suivants:
- subject:modèle de chaîne pour l'objet de l'e-mail.
- text:chaîne de modèle pour le contenu en texte brut de l'e-mail.
- html:modèle de chaîne pour le contenu HTML de l'e-mail.
- amp:modèle de chaîne pour le contenu AMP4EMAIL de l'e-mail.
- attachments : tableau d'éléments joints avec des chaînes de modèle comme valeurs. Options Nodemailer acceptées : chaîne utf-8, type de contenu personnalisé, URL, chaîne encodée, URI de données et nœud MIME prégénéré (notez que votre e-mail n'a pas accès au système de fichiers du serveur cloud).
Un exemple de modèle peut avoir l'ID following
et un contenu tel que:
{
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}}"
}
]
}
Envoyer des e-mails à l'aide de modèles
Pour distribuer des e-mails à l'aide de modèles, lorsque vous ajoutez des documents à votre collection de messagerie,
Incluez un champ template
avec les propriétés name
et data
. Par exemple, en utilisant notre modèle following
ci-dessus :
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"
},
},
});
Éléments partiels du modèle
Vous pouvez créer des modèles à l'aide de parties réutilisables
en spécifiant {partial: true}
dans le document de modèle. Chacune des normes
les champs de données (subject
, html
, text
et amp
) seront définis comme partiellement
uniquement dans son propre environnement. Par exemple, un élément partiel appelé footer
peut
contiennent des données telles que:
{
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"
}
Dans un autre modèle, incluez l'élément partiel en référençant son nom (ID du document):
<p>This is my main template content, but it will use a common footer.</p>
{{> footer }}