const nodemailer = require('nodemailer');
const transporter = nodemailer.createTransport({
host: process.env.SMTP_HOST || 'mail.infomaniak.com',
port: parseInt(process.env.SMTP_PORT, 10) || 465,
secure: parseInt(process.env.SMTP_PORT, 10) === 465 || true,
auth: {
user: process.env.SMTP_USER,
pass: process.env.SMTP_PASS,
},
});
async function sendInvitationEmail(guest, inviter, token, baseUrl) {
const link = `${baseUrl}/invitation/${token}`;
const dateStr = guest.date_club
? new Date(guest.date_club).toLocaleDateString('fr-FR', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' })
: 'à venir';
const html = `
Dyna Biz Coignieres
|
|
Bonjour ${guest.prenom} ${guest.nom},
${inviter.prenom} ${inviter.nom} de Dyna Biz Coignieres vous invite à participer à notre prochain événement réseau.
${guest.date_club ? `Date : ${dateStr} ` : ''}
Horaires : 10h45 - 13h00
Lieu : 7 Av. Roger Hennequin, 78190 Trappes
Merci de nous confirmer votre présence en cliquant sur l'un des boutons ci-dessous :
Ou rendez-vous sur : ${link}
|
|
`;
try {
await transporter.sendMail({
from: `"Dyna Biz Coignieres" <${process.env.EMAIL_FROM}>`,
to: guest.email,
subject: `Invitation - Dyna Biz Coignieres ${guest.date_club ? new Date(guest.date_club).toLocaleDateString('fr-FR') : ''}`,
html,
});
return true;
} catch (err) {
console.error('Email send error:', err);
throw err;
}
}
module.exports = { transporter, sendInvitationEmail };