@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
Markdown
# @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)