Biblioteca nodemailer para enviar correos electrónicos en TypeScript
nodemailer es una biblioteca potente y popular para Node.js, escrita en TypeScript, que permite enviar correos electrónicos fácilmente desde aplicaciones del lado del servidor. Soporta todos los protocolos modernos (SMTP, SES, Sendmail) y formatos de correo (HTML, texto, adjuntos).
¿Para qué sirve nodemailer?
En el desarrollo web, a menudo es necesario enviar notificaciones, confirmaciones de registro, restablecimiento de contraseñas o boletines de marketing. nodemailer resuelve esta tarea proporcionando una API simple y flexible para trabajar con servidores de correo. Gracias a la tipificación de TypeScript, el código se vuelve más fiable y predecible.
Instalación
Instale el paquete a través de npm o yarn:
npm install nodemailernpm install -D @types/nodemailerPara TypeScript, asegúrese de instalar el paquete con tipos.
Funciones principales
- Soporte SMTP — funciona con cualquier servidor SMTP (Gmail, Yandex, Mailgun, SendGrid).
- Correos HTML y de texto — puede enviar tanto texto plano como mensajes HTML formateados.
- Adjuntos — soporte para archivos, imágenes y adjuntos en línea.
- Streams — posibilidad de enviar archivos grandes a través de streams.
- Seguridad — soporte para TLS/SSL, OAuth2.
- Pool de conexiones — optimización para envíos masivos.
Ejemplo de código en TypeScript
Ejemplo simple de envío de correo a través de Gmail SMTP:
import nodemailer from 'nodemailer';
async function sendEmail() { const transporter = nodemailer.createTransport({ host: 'smtp.gmail.com', port: 587, secure: false, // true para 465 auth: { user: 'your-email@gmail.com', pass: 'your-password', }, });
const info = await transporter.sendMail({ from: '"Sender Name" <your-email@gmail.com>', to: 'recipient@example.com', subject: '¡Hola desde TypeScript!', text: 'Este es el texto del correo.', html: '<b>Este es un correo HTML</b>', });
console.log('Correo enviado:', info.messageId);}
sendEmail().catch(console.error);Cuándo usar nodemailer
La biblioteca es ideal para:
- Aplicaciones backend en Node.js/Express/NestJS.
- Notificaciones automáticas (registro, pedidos, errores).
- Confirmación de direcciones de correo electrónico.
- Envío de correos transaccionales.
- Integración con cualquier proveedor SMTP.
Si necesita enviar correos con adjuntos, plantillas HTML o a través de servicios externos (SendGrid, Mailgun), nodemailer es el estándar de facto en el ecosistema Node.js.
Importante: Para producción, use variables de entorno para almacenar contraseñas y configurar OAuth2, para no exponer las credenciales en el código.
También en la biblioteca
Cliente OAuth para Swift (iOS/macOS): guía completa
Procesamiento de imágenes en C# (.NET): bibliotecas y ejemplos de código
Trabajo con fechas en Java: revisión de las bibliotecas java.time, Joda-Time y Apache Commons
Cliente Elasticsearch para Go (Golang): guía completa para trabajar con ES
Puppeteer para JavaScript (Node.js): guía completa con ejemplos