¿Qué es Nodemailer y para qué sirve?
\n\nNodemailer es un módulo para Node.js que permite enviar correos electrónicos desde tu aplicación JavaScript. Es una de las librerías más populares y estables en el ecosistema de Node.js para trabajar con correo electrónico. Proporciona una API simple pero potente para crear y enviar mensajes a través de diversos transportes (SMTP, Sendmail, Amazon SES y otros).
\n\n¿Para qué sirve Nodemailer?
\n- \n
- Automatización de notificaciones: Envío de correos de registro, restablecimiento de contraseña, confirmación de pedido y otros eventos. \n
- Envíos masivos: Creación de boletines informativos, campañas de marketing (con precaución para no caer en spam). \n
- Formularios de contacto: Envío de mensajes desde formularios de contacto en el sitio web. \n
- Monitoreo y registros: Notificación al administrador sobre errores críticos en la aplicación. \n
- Flexibilidad: Soporte para plantillas HTML, archivos adjuntos, imágenes incrustadas y diversas codificaciones. \n
Nodemailer abstrae la complejidad de trabajar con protocolos de correo electrónico (SMTP, POP3, IMAP) y proporciona una interfaz unificada y comprensible.
\n\nInstalación de Nodemailer
\n\nLa instalación de Nodemailer se realiza a través del gestor de paquetes npm (Node Package Manager). Asegúrate de tener instalado Node.js (versión 12 o superior).
\n\nAbre la terminal en la carpeta raíz de tu proyecto y ejecuta el comando:
\n\nnpm install nodemailer\n\nUna vez finalizada la instalación, puedes importar la librería en tu código:
\n\nconst nodemailer = require('nodemailer');\n\nPara proyectos que usan módulos ES (con "type": "module" en package.json), utiliza la importación:
\n\nimport nodemailer from 'nodemailer';\n\nInicio rápido: envío del primer correo
\n\nLa forma más sencilla de enviar un correo es usar un servidor SMTP. En este ejemplo, usaremos el servicio de Gmail. Importante: Para trabajar con Gmail, necesitarás crear una "contraseña de aplicación" (App Password) o usar OAuth2. La contraseña normal de la cuenta no funcionará debido a la configuración de seguridad de Google.
\n\nconst nodemailer = require('nodemailer');\n\n// 1. Creamos el transporte (método de envío)\nconst transporter = nodemailer.createTransport({\n service: 'gmail',\n auth: {\n user: 'tu-correo@gmail.com', // Tu correo\n pass: 'tu-contraseña-de-aplicación' // Contraseña de aplicación\n }\n});\n\n// 2. Configuramos el correo\nconst mailOptions = {\n from: 'tu-correo@gmail.com',\n to: 'destinatario@example.com',\n subject: '¡Hola desde Nodemailer!',\n text: 'Este es un correo de prueba enviado con Nodemailer.'\n};\n\n// 3. Enviamos el correo\ntransporter.sendMail(mailOptions, (error, info) => {\n if (error) {\n return console.log('Error:', error);\n }\n console.log('Correo enviado:', info.messageId);\n console.log('URL para ver:', nodemailer.getTestMessageUrl(info));\n});\n\n\nEste código crea un transporte para Gmail, forma un correo de texto simple y lo envía. En caso de éxito, verás el ID del mensaje en la consola.
\n\nMétodos y funciones principales de Nodemailer
\n\nVeamos en detalle los métodos clave que proporciona la librería.
\n\n1. nodemailer.createTransport(options)
\nQué hace: Crea un objeto de transporte: esta es la configuración principal que define cómo se enviará el correo (a través de qué servidor y con qué credenciales).
\nParámetros:
\n- \n
options(Object): Objeto de configuración. Propiedades principales:\n- \n
host(String): Dirección del servidor SMTP (por ejemplo, 'smtp.gmail.com'). \n También en la biblioteca
Socket.io para JavaScript (Node.js): guía completa con ejemplos
HtmlAgilityPack para C# (.NET): guía completa con ejemplos
Tokens JWT en TypeScript: guía completa para trabajar con JSON Web Tokens
Multer para JavaScript (Node.js): guía completa con ejemplos
Generación de PDF en PHP: mejores bibliotecas y ejemplos de código
Recommendations