Se você tiver especificado um parâmetro "Coleção de modelos" durante a configuração da extensão, será possível criar e gerenciar modelos do Handlebars para seus e-mails.
Estrutura da coleção de modelos
Conceda a todos os documentos de um modelo um ID que seja fácil de lembrar. Ele será usado como nome do modelo no documento gravado na coleção
O modelo de documento pode incluir qualquer um destes campos:
- subject: um modelo de string do assunto do e-mail.
- text: um modelo de string do conteúdo de texto simples do e-mail.
- html: um modelo de string do conteúdo HTML do e-mail.
- amp: um modelo de string do conteúdo AMP4EMAIL do e-mail.
- attachments: uma matriz de anexos com modelos de strings como valores. Opções do Nodemailer com suporte: string utf-8, tipo de conteúdo personalizado, URL, string codificada, URI de dados e nó MIME pré-gerado. Lembre-se de que seu e-mail não tem acesso ao sistema de arquivos do servidor da nuvem.
Um modelo de exemplo pode ter um ID de following
e conteúdo como este:
{
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}}"
}
]
}
Enviar e-mails usando modelos
Para entregar e-mails usando modelos, inclua um campo template
com as
propriedades name
e data
ao adicionar documentos à sua coleção de e-mails. Por exemplo,
usando nosso modelo following
acima:
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"
},
},
});
Modelos parciais
Para escrever modelos usando parciais reutilizáveis,
especifique {partial: true}
no documento do modelo. Os campos
de dados padrão (subject
, html
, text
e amp
) serão definidos como parciais
que são usados apenas no próprio ambiente. Por exemplo, um parcial chamado footer
pode
ter dados como estes:
{
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"
}
Em outro modelo, inclua o parcial com referência ao nome (ID do documento):
<p>This is my main template content, but it will use a common footer.</p>
{{> footer }}