Loading repository data…
Loading repository data…
ellenode / repository
Maily es un paquete minimalista para el envío de correos electrónicos en Node.js utilizando nodemailer, con soporte para plantillas HTML basadas en Handlebars y una sintaxis fluida y sencilla.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Maily es un paquete minimalista para el envío de correos electrónicos en Node.js utilizando nodemailer, con soporte para plantillas HTML basadas en Handlebars y una sintaxis fluida y sencilla.
npm install maily
Maily depende de los siguientes valores de entorno, que debes definir en tu archivo .env:
| Variable | Descripción |
|---|---|
MAIL_HOST | Servidor SMTP (ej. smtp.gmail.com) |
MAIL_PORT | Puerto SMTP (generalmente 465 o 587) |
MAIL_FROM | Correo emisor por defecto |
MAIL_PASSWORD | Contraseña o token de la cuenta emisor |
import { Mail } from '@ellenode/maily';
import { env } from '@ellenode/envy';
Mail.from(env('MAIL_FROM'))
.to('destinatario@ejemplo.com')
.subject('Asunto del correo')
.content('<h1>Hola, este es un correo de prueba</h1>')
.send();
Puedes enviar correos utilizando archivos .html:
import { Mail } from '@ellenode/maily';
await Mail.from(env('MAIL_FROM'))
.to('destinatario@ejemplo.com')
.html(basePath('./reporte.html'))
.data({
empleados: empleados,
fecha: '2022-01-01'
})
.subject('Envío de reporte anual')
.send();
Mail.from(env('MAIL_FROM'))
.to('destinatario@ejemplo.com')
.cc('copia@ejemplo.com')
.bcc('oculto@ejemplo.com')
.subject('Correo con adjunto')
.content('<p>Se adjunta el documento solicitado.</p>')
.attachments([
{ filename: 'documento.pdf', path: './ruta/documento.pdf' }
])
.send();
| Método | Descripción |
|---|---|
from(emisor) | Define el remitente (aunque se usa MAIL_FROM por defecto) |
to(destinatario) | Destinatario del correo |
cc(copia) | Copia visible |
bcc(copia) | Copia oculta |
subject(asunto) | Asunto del correo |
content(html) | Contenido HTML directo |
html(rutaHtml) | Ruta a plantilla .html para usar con Handlebars |
data(objeto) | Datos a inyectar en la plantilla |
attachments(archivos) | Adjuntos como array de objetos { filename, path } |
send() | Envía el correo |
Por defecto, los errores se lanzan automáticamente y los envíos exitosos se imprimen en consola. Si deseas personalizar este comportamiento:
Mail.from(env('MAIL_FROM'))
.to('destinatario@ejemplo.com')
.subject('Correo')
.content('<p>Prueba</p>')
.onSuccess(info => console.log('Enviado:', info.response))
.onError(error => console.error('Error al enviar:', error))
.send();
nodemailer @ellenode/envy handlebars fs
MIT © 2025 Cristian Guzmán