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 JavaScript (Node.js)

Nodemailer es el módulo más popular para enviar correos electrónicos desde aplicaciones en Node.js. Proporciona una API simple y flexible para trabajar con varios servicios de correo (SMTP, Gmail, Outlook, SendGrid y otros). La librería soporta plantillas HTML, adjuntos, streams, así como autenticación segura mediante OAuth2.

¿Para qué sirve Nodemailer?

  • Envío de correos transaccionales (confirmación de registro, recuperación de contraseña).
  • Distribución de notificaciones y campañas de marketing.
  • Integración con formularios de contacto en sitios web.
  • Envío automático de informes y registros.

Instalación

Instale el módulo a través de npm:

npm install nodemailer

Funciones principales

  • Transporte — configuración del servidor SMTP o uso de transportes integrados (Gmail, Mailgun, SendGrid).
  • Formateo del correo — soporte para HTML, texto, adjuntos (archivos, imágenes, PDF).
  • Streams — posibilidad de enviar archivos grandes sin cargarlos en memoria.
  • OAuth2 — autenticación segura para Gmail y otros proveedores.
  • Pool de conexiones — optimización del rendimiento en envíos masivos.

Ejemplo de código en JavaScript (Node.js)

const nodemailer = require('nodemailer');

// Configuración del transporte (usamos Gmail)
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'your-email@gmail.com',
pass: 'your-password' // o use App Password
}
});

// Parámetros del correo
const mailOptions = {
from: 'your-email@gmail.com',
to: 'recipient@example.com',
subject: '¡Saludos desde Nodemailer!',
html: '<h1>Este es un correo de prueba</h1><p>Enviado a través de Node.js.</p>',
attachments: [{
filename: 'document.pdf',
path: './files/document.pdf'
}]
};

// Envío
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log('Error:', error);
}
console.log('Correo enviado:', info.response);
});

¿Cuándo usar Nodemailer?

La librería es adecuada para cualquier proyecto en Node.js que requiera envío de correos electrónicos: desde blogs pequeños hasta sistemas corporativos. Nodemailer se integra fácilmente con frameworks (Express, Koa) y servicios en la nube. Si necesita enviar correos con adjuntos, maquetación HTML o mediante OAuth2, esta es la mejor opción.

Tenga en cuenta: para producción se recomienda usar servicios especializados (SendGrid, Amazon SES) o relays SMTP para evitar bloqueos. Nodemailer soporta todos los proveedores populares.

Recommendations