Nodemailer

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Nodemailer: Envío de email en TypeScript

Nodemailer es el módulo más popular para enviar correos electrónicos desde aplicaciones Node.js y TypeScript. Permite integrar fácilmente el envío de email a través de SMTP, y también admite plantillas HTML, archivos adjuntos, streams y múltiples transportes (Gmail, Yandex, SendGrid, etc.). La biblioteca es totalmente compatible con TypeScript gracias a sus tipos incorporados.

¿Para qué sirve Nodemailer?

En el desarrollo web moderno, el envío de email es necesario para:

  • Confirmación de registro (verificación)
  • Restablecimiento de contraseña
  • Notificaciones y boletines
  • Alertas del sistema

Nodemailer simplifica este proceso proporcionando una API unificada para cualquier servicio de correo.

Instalación

npm install nodemailernpm install -D @types/nodemailer

Para TypeScript, asegúrese de instalar el paquete con tipos.

Funciones principales

  • Transporte SMTP — envío a través de cualquier servidor SMTP (Gmail, Mail.ru, Yandex, AWS SES).
  • HTML y texto — soporte tanto para texto plano como para correos HTML.
  • Archivos adjuntos — archivos, imágenes, Buffer, streams.
  • Plantillas — integración con handlebars, pug y otros.
  • Streams — envío de archivos grandes sin cargarlos en memoria.
  • Pool de conexiones — mejora del rendimiento en envíos masivos.

Ejemplo de código en TypeScript

import nodemailer from 'nodemailer';

interface MailOptions { to: string; subject: string; text?: string; html?: string;}

async function sendEmail(options: MailOptions): Promise<void> { // Creamos el transporte (ejemplo para Gmail) const transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: 'your-email@gmail.com', pass: 'your-app-password' } });

// Configuración del correo const mailData = { from: 'your-email@gmail.com', to: options.to, subject: options.subject, text: options.text || '', html: options.html || undefined };

// Envío const info = await transporter.sendMail(mailData); console.log('Correo enviado:', info.messageId);}

// UsosendEmail({ to: 'user@example.com', subject: '¡Hola desde TypeScript!', html: '<h1>Bienvenido</h1><p>Este es un correo de prueba.</p>'});

Cuándo usar Nodemailer

La biblioteca es adecuada para:

  • Cualquier proyecto en Node.js/TypeScript que necesite enviar email.
  • Prototipos y MVP — configuración rápida a través de Gmail.
  • Sistemas en producción — utilizando servicios transaccionales (SendGrid, Mailgun).
  • Microservicios y serverless (Lambda, Cloud Functions).

No se recomienda usar Nodemailer para envíos masivos de spam — para eso existen ESP (Email Service Providers) especializados.

Conclusión

Nodemailer es una biblioteca madura, estable y bien documentada. Gracias a los tipos de TypeScript, obtienes autocompletado y verificación de errores en tiempo de compilación. Es la elección ideal para el envío de email en el ecosistema JavaScript/TypeScript.

Recommendations