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 = `

Restablecer contraseña — FarmaFinder

Hola ${username},

Has solicitado restablecer tu contraseña. Haz clic en el siguiente enlace para crear una nueva:

Restablecer contraseña

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 = `

Tu usuario — FarmaFinder

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, }); }