encebollado-con-mail
v1.0.3
Published
Módulo de envio de correos usando Nodemailer y variables de entorno.
Maintainers
Readme
encebollado-con-mail
⚡ Descripción
EncebolladoConMail internamente es un módulo de Node.js diseñado para simplificar el envío de correos electrónicos utilizando Nodemailer. Este módulo se enfoca en la seguridad y la facilidad de uso al gestionar todas las credenciales del servicio de correo exclusivamente a través de variables de entorno, asegurando que la información sensible nunca esté directamente en tu código.
Ideal para aplicaciones que necesitan enviar notificaciones, confirmaciones o cualquier tipo de correo electrónico de forma segura.
🚀 Instalación
Para instalar el módulo en tu proyecto, usa npm:
npm install encebollado-con-mail⚙️ Configuración (Variables de Entorno)
Este módulo requiere que configures tus credenciales de correo electrónico usando variables de entorno en un archivo .env en la raíz de tu proyecto. Esto es crucial para la seguridad.
Crea un archivo llamado .env en la raíz de tu proyecto (al mismo nivel que package.json).
Añade las siguientes variables a tu archivo .env, reemplazando los valores de ejemplo con tus credenciales reales:
EMAIL_SERVICE=tu_servicio_de_correo # Ej: gmail, Outlook365, SMTP (para otros)
[email protected] # Tu dirección de correo electrónico
EMAIL_APP_PASSWORD=tu_app_password # ¡IMPORTANTE! Usa una Contraseña de Aplicación para Gmail/OutlookNota para Gmail/Outlook: Por motivos de seguridad, es probable que necesites generar una Contraseña de Aplicación (App Password) en la configuración de seguridad de tu cuenta de Google/Microsoft, en lugar de usar tu contraseña normal. Busca "cómo generar una contraseña de aplicación para Gmail" o "Outlook App Password".¡IMPORTANTE! Añade .env a tu archivo .gitignore para asegurar que tus credenciales nunca se suban a tu repositorio de control de versiones.
💡 Uso Básico
Aquí te mostramos cómo usar encebollado-con-mail en tu aplicación:
// example.js
// Importa la clase EncebolladoConMail desde tu módulo.
import { EncebolladoConMail } from 'encebollado-con-mail';
// --- Paso 1: Configurar tu archivo .env ---
// Asegúrate de tener un archivo .env en la raíz de tu proyecto con las siguientes variables:
// EMAIL_SERVICE=gmail
// [email protected]
// EMAIL_APP_PASSWORD=tu_app_password_generada
// ¡Recuerda añadir .env a tu .gitignore!
// --- Paso 2: Crear una instancia del remitente de correos ---
// La clase EncebolladoConMail leerá automáticamente las credenciales de tu archivo .env.
const mailer = new EncebolladoConMail();
// --- Paso 3: Definir las opciones del correo ---
// 'to', 'subject' y 'text' son obligatorios. 'html' y 'from' son opcionales.
const mailOptions = {
to: '[email protected]', // Puedes poner una o varias direcciones separadas por coma
subject: '¡Prueba de EncebolladoConMail!',
text: 'Hola,\n\n¡Este es un correo de prueba enviado con tu módulo EncebolladoConMail!\n\nSaludos.',
html: '<h3>Hola!</h3><p>Este es un correo <b>HTML</b> enviado con tu módulo <i>EncebolladoConMail</i>!</p>',
// from: '[email protected]' // Opcional: Si no se especifica, usa EMAIL_USER de .env
};
// --- Paso 4: Enviar el correo ---
async function enviarCorreoDeEjemplo() {
try {
const info = await mailer.sendEmail(mailOptions);
console.log('🎉 Correo de ejemplo enviado con éxito:', info.messageId);
console.log('Vista previa en Ethereal si usas un servicio de prueba: %s', nodemailer.getTestMessageUrl(info));
} catch (error) {
console.error('❌ Error al enviar el correo de ejemplo:', error.message);
// Si el error es por credenciales, verifica tu archivo .env
if (error.message.includes('obligatorias')) {
console.error('Asegúrate de que EMAIL_SERVICE, EMAIL_USER y EMAIL_APP_PASSWORD estén en tu .env.');
}
}
}
// Ejecutar la función para enviar el correo
enviarCorreoDeEjemplo();