Nodemailer — envío de correos electrónicos con TypeScript

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

¿Qué es Nodemailer y para qué sirve?

Nodemailer es el módulo más popular para el envío de correos electrónicos en el entorno Node.js. Escrito en JavaScript, funciona perfectamente con TypeScript gracias a sus tipos integrados (DefinitelyTyped). La librería permite enviar correos a través de SMTP, Sendmail, Amazon SES y otros transportes. En proyectos TypeScript, Nodemailer proporciona un tipado estricto de todas las opciones, lo que reduce la cantidad de errores en la etapa de compilación.

Instalación

Para la instalación, ejecute el comando:

npm install nodemailer @types/nodemailer

El paquete @types/nodemailer añade las declaraciones de tipos necesarias para TypeScript.

Funciones principales

  • Envío de correos a través de SMTP — soporte para Gmail, Yandex, Mail.ru, SendGrid y cualquier otro servidor SMTP.
  • Archivos adjuntos — posibilidad de adjuntar archivos, imágenes, PDF.
  • Plantillas HTML — envío de correos con contenido HTML formateado.
  • Soporte SSL/TLS — transmisión segura de datos.
  • Pool de conexiones — optimización para envíos masivos.

Ejemplo de código en TypeScript

A continuación se muestra un ejemplo mínimo de envío de un correo a través de Gmail SMTP usando 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({ service: 'gmail', auth: { user: 'your@gmail.com', pass: 'your-app-password', }, });

const info = await transporter.sendMail(options); console.log('Correo enviado:', info.messageId);}

// UsosendEmail({ from: 'your@gmail.com', to: 'recipient@example.com', subject: '¡Hola desde TypeScript!', html: '<h1>Correo de prueba</h1><p>Enviado con Nodemailer</p>',});

Importante: Para Gmail es necesario usar una contraseña de aplicación (App Password), no la contraseña normal.

¿Cuándo usar Nodemailer?

La librería es adecuada para:

  • Correos de registro (confirmación de email, recuperación de contraseña).
  • Notificaciones de pedidos en tiendas online.
  • Envío de newsletters y correos de marketing (usando colas).
  • Informes automáticos desde el backend (logs, errores, estadísticas).

Si necesita enviar emails en un proyecto TypeScript — Nodemailer sigue siendo el estándar de facto gracias a su flexibilidad, fiabilidad y enorme comunidad.

Recommendations