/* require('../config/config'); const send = require('gmail-send')({ user: process.env.GMAIL, pass: process.env.GMAILPASSWORD, }); const gmail = (subject, to, text) => { return new Promise((resolve, reject) => { send({ subject, to, text }, (error, result, fullResult) => { if (error) reject(error); resolve(result); }); }); // return "envio de correo" }; module.exports = gmail; */ // src/utils/gmail.js (o donde prefieras) // gmail.js (o el nombre que prefieras) require('../config/config'); // mantiene tu carga de variables const nodemailer = require('nodemailer'); // Transporter con pooling y throttling const transporter = nodemailer.createTransport({ host: 'smtp.gmail.com', // cambia a smtp-relay.gmail.com si usas Workspace port: 587, secure: false, // STARTTLS en puerto 587 requireTLS: true, auth: { user: process.env.USER_GMAIL, // ejemplo: tu-cuenta@gmail.com pass: process.env.PASS_GMAIL, // App-Password de 16 caracteres }, pool: true, // reutiliza la conexión maxConnections: 1, // una conexión simultánea maxMessages: 100, // reabre después de 100 envíos rateDelta: 2000, // ventana de 2 s rateLimit: 1, // máx. 1 mensaje por ventana (≈ 0.5 msg/s) }); /** * Envía un correo (API idéntica a tu versión anterior). * @param {string} subject Asunto * @param {string|string[]} to Destinatario(s) * @param {string} text Cuerpo en texto plano * @return {Promise} info de nodemailer */ const gmail = (subject, to, text) => transporter.sendMail({ from: process.env.USER_GMAIL, to, subject, text, }); module.exports = gmail;