UNPKG

@hemia/email-sender

Version:

Librería de envío de correos compatible con plantillas EJS y MJML, basada en Nodemailer.

122 lines (94 loc) 2.22 kB
# @hemia/email-sender Una librería ligera y extensible para el envío de correos electrónicos usando Nodemailer, compatible con plantillas EJS y MJML. Soporta múltiples destinatarios, CC, BCC, adjuntos y renderizado dinámico de contenido. --- ## Características * Basado en `nodemailer` * Soporte para plantillas HTML (EJS, MJML) * Múltiples destinatarios (`to`, `cc`, `bcc`) * Adjuntos (`attachments`) * Configuración SMTP flexible * Ideal para sistemas de notificación * Separación de lógica de renderizado con `TemplateManager` --- ## Instalación ```bash npm install @hemia/email-sender ``` --- ## Uso básico ```ts import { EmailSender } from '@hemia/email-sender'; const emailSender = new EmailSender({ host: 'smtp.example.com', port: 465, secure: true, auth: { user: 'user@example.com', pass: 'password123' } }); await emailSender.sendEmail({ to: 'destinatario@correo.com', subject: 'Asunto del correo', template: 'welcome-template.ejs', data: { nombre: 'Juan', link: 'https://ejemplo.com' }, app: 'MiApp' }); ``` --- ## Uso avanzado con CC, BCC y adjuntos ```ts await emailSender.sendEmail({ to: ['a@correo.com', 'b@correo.com'], cc: 'c@correo.com', bcc: ['d@correo.com'], subject: 'Con adjuntos', template: 'invoice.ejs', data: { total: '$99.00' }, attachments: [ { filename: 'factura.pdf', path: '/ruta/factura.pdf' } ] }); ``` --- ## Interfaces disponibles ```ts interface EmailSenderConfig { host: string; port: number; secure: boolean; auth: { user: string; pass: string; }; } interface EmailOptions { to: string | string[]; subject: string; template: string; data?: Record<string, any>; app?: string; cc?: string | string[]; bcc?: string | string[]; attachments?: { filename: string; path?: string; content?: string | Buffer; }[]; } ``` --- ## Estructura de plantillas ``` templates/ welcome-template.ejs reset-password.ejs ``` Puedes personalizar el `TemplateManager` para soportar MJML, EJS u otros motores de renderizado. --- ## Licencia MIT © Hemia Technologies Desarrollado por [Hemia Technologies](https://hemia.mx)