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

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-dev

Funciones 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/catch es 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.

Recommendations