Si especificaste un parámetro de “Colección de plantillas” durante la configuración de la extensión, puedes crear y administrar plantillas de Handlebars para tus correos electrónicos.
Estructura de la colección de plantillas
Asigna a cada documento un ID fácil de recordar que uses como nombre de la plantilla en los documentos que escribas en la colección de plantillas.
El documento de plantilla puede incluir cualquiera de los siguientes campos:
- subject: Es una string de plantilla para el asunto del correo electrónico.
- text: Es una string de plantilla para el contenido de texto simple del correo electrónico.
- html: Es una string de plantilla para el contenido HTML del correo electrónico.
- amp: Es una string de plantilla para el contenido AMP4EMAIL del correo electrónico.
- attachments: Es un array de adjuntos con strings de plantilla como valores. Se admiten opciones de Nodemailer: string utf-8, tipo de contenido personalizado, URL, string codificada, URI de datos y nodo MIME pregenerado (ten en cuenta que tu correo electrónico no tiene acceso al sistema de archivos del servidor de nube).
Una plantilla de ejemplo puede tener un ID de following
y contenido como el siguiente:
{
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}}"
}
]
}
Envía correos electrónicos mediante plantillas
Para entregar correos electrónicos mediante plantillas, cuando agregues documentos a tu colección de correos, incluye un campo template
con las propiedades name
y data
. Por ejemplo, con nuestra plantilla following
anterior:
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"
},
},
});
Parciales de plantilla
Puedes redactar plantillas mediante parciales reutilizables si especificas {partial: true}
en el documento de la plantilla. Cada uno de los campos de datos estándar (subject
, html
, text
y amp
) se definirá como un objeto parcial solo en su propio entorno. Por ejemplo, un parcial llamado footer
podría tener datos como los siguientes:
{
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"
}
En otra plantilla, incluye el parcial haciendo referencia a su nombre (ID de documento):
<p>This is my main template content, but it will use a common footer.</p>
{{> footer }}