import nodemailer from 'nodemailer'; const SMTP_HOST = process.env.SMTP_HOST || 'localhost'; const SMTP_PORT = parseInt(process.env.SMTP_PORT || '1025', 10); const SMTP_USER = process.env.SMTP_USER || ''; const SMTP_PASS = process.env.SMTP_PASS || ''; const SMTP_FROM = process.env.SMTP_FROM || 'noreply@farmafinder.com'; const APP_URL = process.env.APP_URL || 'http://localhost:3000'; let transporter = null; function getTransporter() { if (transporter) return transporter; const auth = SMTP_USER && SMTP_PASS ? { user: SMTP_USER, pass: SMTP_PASS } : undefined; transporter = nodemailer.createTransport({ host: SMTP_HOST, port: SMTP_PORT, secure: SMTP_PORT === 465, auth, ignoreTLS: SMTP_PORT !== 465 && !SMTP_USER, }); return transporter; } export async function sendPasswordResetEmail(email, username, token) { const resetUrl = `${APP_URL}/reset-password?token=${token}`; const html = `
Hola ${username},
Has solicitado restablecer tu contraseña. Haz clic en el siguiente enlace para crear una nueva:
Si no has solicitado este cambio, ignora este mensaje.
El enlace caduca en 1 hora.
FarmaFinder — Encuentra tus medicamentos en farmacias cercanas
`; const text = `Restablecer contraseña — FarmaFinder\n\nHola ${username},\n\nHas solicitado restablecer tu contraseña. Abre este enlace para crear una nueva:\n${resetUrl}\n\nSi no has solicitado este cambio, ignora este mensaje.\nEl enlace caduca en 1 hora.`; await getTransporter().sendMail({ from: SMTP_FROM, to: email, subject: 'Restablece tu contraseña — FarmaFinder', text, html, }); } export async function sendForgotUsernameEmail(email, username) { const html = `Has solicitado recordar tu nombre de usuario.
${username}
Puedes iniciar sesión con este usuario y tu contraseña.
Si no has solicitado este dato, ignora este mensaje.
FarmaFinder — Encuentra tus medicamentos en farmacias cercanas
`; const text = `Tu usuario — FarmaFinder\n\nHas solicitado recordar tu nombre de usuario.\n\nTu usuario es: ${username}\n\nSi no has solicitado este dato, ignora este mensaje.`; await getTransporter().sendMail({ from: SMTP_FROM, to: email, subject: 'Tu nombre de usuario — FarmaFinder', text, html, }); }