Envío de correos electrónicos en TypeScript: Librería nodemailer
Nodemailer es el módulo más popular para enviar correos electrónicos desde Node.js y TypeScript. Permite enviar emails a través de SMTP, así como a través de servicios de transporte integrados (SendGrid, Mailgun y otros). La librería es totalmente compatible con TypeScript (incluyendo tipado) y funciona tanto con correos de texto como HTML, adjuntos y cifrado.
¿Para qué sirve nodemailer?
- Envío de correos transaccionales (confirmación de registro, recuperación de contraseña).
- Distribución de notificaciones (por ejemplo, después de un pedido en un sitio web).
- Integración con formularios de contacto.
- Automatización de informes (volcados de datos diarios).
Instalación
npm install nodemailernpm install @types/nodemailer --save-devFunciones principales
- Transporte SMTP — configuración a través de cualquier servidor SMTP (Gmail, Yandex, Mail.ru).
- Soporte para HTML y texto — se pueden enviar tanto plain text como plantillas HTML atractivas.
- Adjuntos — archivos, imágenes, PDF.
- Transmisión por flujo — envío de archivos grandes sin cargarlos en memoria.
- Tipado — soporte completo de TypeScript (interfaces para opciones).
Ejemplo de código en TypeScript
import nodemailer from 'nodemailer';
interface MailOptions { from: string; to: string; subject: string; text?: string; html?: string;}
async function sendEmail(options: MailOptions): Promise<void> { const transporter = nodemailer.createTransport({ host: 'smtp.gmail.com', port: 587, secure: false, auth: { user: 'your-email@gmail.com', pass: 'your-app-password' } });
const info = await transporter.sendMail(options); console.log('Email sent:', info.messageId);}
// UsosendEmail({ from: 'noreply@example.com', to: 'user@example.com', subject: 'Hello from TypeScript', html: '<h1>Welcome!</h1><p>This is a test email.</p>'});¿Cuándo usar nodemailer?
La librería es ideal para aplicaciones de servidor en Node.js/TypeScript, especialmente en combinación con Express, Next.js o Nest.js. Si necesitas configurar rápidamente el envío de correos sin configuraciones complejas, nodemailer es la mejor opción. También es adecuada para microservicios y tareas en segundo plano (por ejemplo, con Bull o Agenda).
Notas importantes
- Para Gmail, usa una contraseña de aplicación (no la contraseña principal).
- Para producción, usa variables de entorno (por ejemplo,
process.env.SMTP_PASS). - No olvides el manejo de errores:
try/catches obligatorio.
Nodemailer es el estándar de facto para el envío de correos electrónicos en TypeScript. Ligero, confiable y con excelente documentación.
También en la biblioteca
Carter para C# (.NET): guía completa con ejemplos prácticos
Trabajo con S3 y almacenamiento en la nube en Kotlin: AWS SDK y Ktor S3 Client
Registro en JavaScript (Node.js): las mejores soluciones para tu proyecto
Redis (ioredis) para JavaScript (Node.js): guía completa con ejemplos
Biblioteca WebSocket Java: Tyrus — implementación de JSR 356 para tiempo real