Utiliza plantillas de Handlebars con la extensión Correo electrónico activador
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
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:
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 }}
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-09-06 (UTC)"],[],[],null,["\u003cbr /\u003e\n\nIf you specified a \"Templates collection\" parameter during configuration of the\nextension, you can create and manage [Handlebars templates](https://handlebarsjs.com/)\ntemplates for your emails.\n\nTemplate collection structure\n\nGive each document a memorable ID that you use as the *template name* in the\ndocuments you write to your templates collection.\n\nThe template document can include any of the following fields:\n\n- **subject:** A template string for the subject of the email.\n- **text:** A template string for the plaintext content of the email.\n- **html:** A template string for the HTML content of the email.\n- **amp:** A template string for the [AMP4EMAIL](https://amp.dev/documentation/guides-and-tutorials/learn/email-spec/amp-email-format/) content of the email.\n- **attachments:** An array of attachments with template strings as values; [Nodemailer options](https://nodemailer.com/message/attachments/) supported: utf-8 string, custom content type, URL, encoded string, data URI, and pre-generated MIME node (be aware that your email has no access to the cloud server's file system).\n\nAn example template might have an ID of `following` and content like: \n\n {\n subject: \"@{{username}} is now following you!\",\n html: \"Just writing to let you know that \u003ccode\u003e@{{username}}\u003c/code\u003e ({{name}}) is now following you.\",\n attachments: [\n {\n filename: \"{{username}}.jpg\",\n path: \"{{imagePath}}\"\n }\n ]\n }\n\nSend emails using templates\n\nTo deliver email using templates, when adding documents to your mail collection,\ninclude a `template` field with `name` and `data` properties. For example,\nusing our `following` template from above: \n\n admin\n .firestore()\n .collection(\"MAIL_COLLECTION\")\n .add({\n toUids: [\"abc123\"],\n template: {\n name: \"following\",\n data: {\n username: \"ada\",\n name: \"Ada Lovelace\",\n imagePath: \"https://example.com/path/to/file/image-name.jpg\"\n },\n },\n });\n\nTemplate Partials\n\nYou can compose templates using reusable [partials](https://handlebarsjs.com/guide/partials.html)\nby specifying `{partial: true}` in the template document. Each of the standard\ndata fields (`subject`, `html`, `text`, and `amp`) will be defined as a partial\nused only in its own environment. For example, a partial called `footer` might\nhave data like: \n\n {\n partial: true,\n html: \"\u003cp\u003eThis mail was sent by ExampleApp, Inc. \u003ca href='https://example.com/unsubscribe'\u003eUnsubscribe\u003c/a\u003e\u003c/p\u003e\",\n text: \"This mail was sent by ExampleApp, Inc. Unsubscribe here: https://example.com/unsubscribe\"\n }\n\nIn another template, include the partial by referencing its name (document ID): \n\n \u003cp\u003eThis is my main template content, but it will use a common footer.\u003c/p\u003e\n\n {{\u003e footer }}"]]