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 nodemailerFunciones 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.
También en la biblioteca
Dapper para C# (.NET): guía completa con ejemplos
Trabajo con Excel en C# (.NET): Bibliotecas EPPlus y ClosedXML
Serialización de objetos en C++: bibliotecas, métodos y ejemplos de código
Planificador de tareas Swift para iOS/macOS: EventKit y DispatchSource
Autorización y autenticación en PHP: guía completa con ejemplos