Envío de correos
Last updated
Last updated
Para enviar correos electrónicos desde nuestras aplicaciones necesitamos un proveedor como , o (no recomendado para producción), entre otros.
En esta guía vamos a ver cómo funciona (la librería más popular) utilizando como proveedor.
Nota: Para seguir esta guía vas a necesitar crear una cuenta en y crear un API Key.
utiliza para el envío de correos y se puede utilizar con cualquier proveedor.
La ventaja de utilizar es que es fácil cambiar de proveedor si es necesario. La desventaja es que no podemos utilizar las características adicionales que ofrecen algunos proveedores como plantillas y programación de correos, entre otros.
El primer paso para utilizar es instalar la librería:
El siguiente paso es requerirla, crear un transporte (depende del proveedor que se utilice) y después utilizar el método sendMail
para enviar el correo. En el siguiente ejemplo vamos a utilizar un transporte falso que simula el envío del correo (ideal para desarrollo y pruebas):
Y ahora debemos crear el transporte para enviar el email modificando el código anterior:
Creemos un archivo llamado templates.js
que exporte funciones para cada una de las plantillas. Por ejemplo:
Para enviar archivos adjuntos desde Nodemailer sólo debes agregar la llave attachments
al mensaje con un arreglo de objetos. Cada objeto representa un archivo adjunto:
Para enviar correos utilizamos el método send
:
Al utilizar la librería oficial de SendGrid podemos aprovechar funcionalidades únicas como envío de correos programados agregando la llave send_at
al mensaje. Por ejemplo, para enviar un correo 5 minutos en el futuro podemos agregar lo siguiente al construir el mensaje:
Nota: Actualmente SendGrid sólo permite programar correos hasta 72 horas en el futuro.
SendGrid ofrece una funcionalidad que permite crear plantillas con variables que se reemplazarán al hacer el envío. Esto permite separar el diseño del código para que personas no técnicas puedan modificar el texto o elementos gráficos (utilizando un editor gráfico) sin necesidad de hacer cambios sobre el proyecto.
Para el contenido del correo puedes empezar a partir de alguno de los diseños predefinidos o desde cero. SendGrid incluye un editor gráfico pero también puedes manipular el HTML y CSS directamente si es necesario.
Las variables se insertan con doble corchete ({{ }}
), por ejemplo, {{name}}
o {{credits}}
dentro del texto del correo.
Cada plantilla tiene un identificador único que se debe incluir al enviar el correo.
Por ejemplo, asumiendo que tenemos una plantilla con identificador d-12345
con dos variables name
y credits
, podríamos utilizar el siguiente código para enviar un mensaje reemplazando la variable name
por Pedro Perez
y credits
por 15000
:
En este ejemplo tenemos una llave personalizations
donde vamos a incluir el valor de las variables para cada destinatario en la llave dynamic_template_data
. Fíjate también en la llave template_id
que se debe reemplazar con el verdadero identificador de la plantilla que se quiera usar.
Para utilizar sólo debemos reemplazar el transporte. El primer paso es instalar la librería :
Nota: No publiques tu API Key en repositorios de Git públicos o SendGrid bloqueará tu cuenta para evitar usos indebidos. Utiliza alguna librería como y una variable de entorno para almacenarla.
Escribir todo el código HTML del email dentro de nuestro código puede ser muy engorroso. Existen varias soluciones de plantillas como que permiten separar el código HTML del JavaScript. Sin embargo, una solución simple es usar las plantillas literales de JavaScript en otro archivo que contenga todas las plantillas de nuestros correos.
Recuerda que todos los estilos CSS deben ser en línea, es decir, dentro del atributo style
de cada elemento. Si quieres separar el CSS del HTML te recomendamos . Su uso está por fuera del alcance de esta guía pero encontrarás varios ejemplos en el enlace.
Para ver otras formas de adjuntar cada archivo y más opciones te recomendamos ver .
Veamos ahora como enviar correos utilizando la . El primer paso es instalarla con el siguiente comando:
Nota: No publiques tu API Key en repositorios de Git públicos o SendGrid bloqueará tu cuenta para evitar usos indebidos. Utiliza alguna librería como y una variable de entorno para almacenarla.
Para crear una plantilla accede a tu cuenta de e ingresa a la opción Email API -> Dynamic Templates del menú principal. Debes crear una plantilla asignándole un nombre y después crear una primera versión (puedes crear varias versiones de la misma plantilla).