2025-04-29 17:14:52 -06:00
|
|
|
|
require('../config/config'); // mantiene tu carga de variables
|
|
|
|
|
|
const nodemailer = require('nodemailer');
|
|
|
|
|
|
|
|
|
|
|
|
const transporter = nodemailer.createTransport({
|
2025-05-05 13:38:23 -06:00
|
|
|
|
host: 'smtp.gmail.com', // o smtp‑relay.gmail.com (ver punto 2)
|
|
|
|
|
|
port: 587,
|
|
|
|
|
|
secure: false,
|
|
|
|
|
|
requireTLS: true, // TLS STARTTLS
|
|
|
|
|
|
auth: { user: process.env.USER_GMAIL, pass: process.env.PASS_GMAIL },
|
|
|
|
|
|
pool: true, // <‑‑ activa reuse
|
|
|
|
|
|
maxConnections: 1, // una sola conexión viva
|
|
|
|
|
|
maxMessages: 100, // reabrir después de 100 envíos
|
|
|
|
|
|
rateDelta: 2000, // ventana 1 s
|
|
|
|
|
|
rateLimit: 1 // máx. 5 mensajes/seg
|
2025-04-29 17:14:52 -06:00
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
const gmail = (subject, to, text) =>
|
|
|
|
|
|
transporter.sendMail({
|
|
|
|
|
|
from: process.env.USER_GMAIL,
|
|
|
|
|
|
to,
|
|
|
|
|
|
subject,
|
|
|
|
|
|
text,
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
module.exports = gmail;
|
|
|
|
|
|
|