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 servidores SMTP, además de soportar plantillas HTML, adjuntos, transmisión por flujo y múltiples transportes (SMTP, Sendmail, Amazon SES y otros).

¿Para qué sirve Nodemailer?

En las aplicaciones web, a menudo es necesario enviar correos: confirmaciones de registro, restablecimiento de contraseña, notificaciones, boletines. Nodemailer permite hacerlo sin dependencias innecesarias, con soporte para OAuth2, SSL/TLS y codificaciones. Funciona de forma asíncrona y no bloquea el Event Loop.

Instalación

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

npm install nodemailer

Para trabajar con Gmail o Yandex.Mail, puede ser necesaria una configuración adicional (contraseña de aplicación o OAuth2).

Funciones principales

  • Envío a través de SMTP, Sendmail, AWS SES, Mailgun, SendGrid
  • Soporte para correos HTML y de texto plano
  • Adjuntos (archivos, imágenes, Buffer, Stream)
  • Autenticación OAuth2 (Gmail, Outlook)
  • Pool de conexiones para envíos masivos
  • Plantillas (integración con Handlebars, EJS)

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

Ejemplo simple de envío de correo a través de Gmail SMTP:

const nodemailer = require('nodemailer');

const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'your-email@gmail.com',
pass: 'your-app-password'
}
});

const mailOptions = {
from: 'your-email@gmail.com',
to: 'recipient@example.com',
subject: 'Hola desde Node.js',
html: '<h1>Correo de prueba</h1><p>Enviado a través de Nodemailer</p>'
};

transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log('Error:', error);
} else {
console.log('Correo enviado:', info.response);
}
});

Cuándo usarlo

Nodemailer es adecuado para cualquier proyecto de Node.js que requiera envío de email: desde scripts simples hasta aplicaciones corporativas. Es estable, bien documentado y cuenta con el respaldo de miles de desarrolladores. Si necesita envíos masivos (newsletter), es mejor usar servicios especializados (SendGrid, Mailchimp) a través de su API, pero para transactional email, Nodemailer es la opción ideal.

Recommendations