/** * Service Newsletter */ import nodemailer from 'nodemailer'; import dotenv from 'dotenv'; dotenv.config(); // Configuration du transporteur email (réutilise la config du service email) const createTransporter = () => { if (process.env.NODE_ENV === 'development' && !process.env.SMTP_HOST) { console.log('⚠️ Mode développement: Les emails seront affichés dans la console'); return null; } return nodemailer.createTransport({ host: process.env.SMTP_HOST, port: parseInt(process.env.SMTP_PORT) || 587, secure: process.env.SMTP_PORT === '465', auth: { user: process.env.SMTP_USER, pass: process.env.SMTP_PASS, }, }); }; const transporter = createTransporter(); /** * Fonction générique pour envoyer un email */ const sendEmail = async ({ to, subject, html, text }) => { try { if (!transporter) { console.log('📧 Email qui aurait été envoyé:'); console.log('To:', to); console.log('Subject:', subject); console.log('Content:', text || html); return { success: true, mode: 'dev' }; } const mailOptions = { from: process.env.EMAIL_FROM || 'noreply@thetiptop.fr', to, subject, text, html, }; const info = await transporter.sendMail(mailOptions); console.log('✅ Email envoyé:', info.messageId); return { success: true, messageId: info.messageId }; } catch (error) { console.error('❌ Erreur envoi email:', error); throw new Error('Erreur lors de l\'envoi de l\'email'); } }; /** * Envoie un email de confirmation d'abonnement à la newsletter */ export const sendNewsletterConfirmationEmail = async (email) => { const unsubscribeUrl = `${process.env.FRONTEND_URL || 'http://localhost:3000'}/newsletter/unsubscribe?email=${encodeURIComponent(email)}`; const html = `

🍵 Bienvenue dans notre newsletter!

Merci de votre abonnement

Nous sommes ravis de vous compter parmi nos abonnés !

Vous recevrez désormais nos dernières actualités, offres exclusives et nouveautés directement dans votre boîte mail.

Restez connecté avec Thé Tip Top pour découvrir :

Vous ne souhaitez plus recevoir nos emails ? Se désabonner

`; const text = ` Bienvenue dans notre newsletter! Nous sommes ravis de vous compter parmi nos abonnés ! Vous recevrez désormais nos dernières actualités, offres exclusives et nouveautés directement dans votre boîte mail. Pour vous désabonner: ${unsubscribeUrl} © 2025 Thé Tip Top - Tous droits réservés `; return sendEmail({ to: email, subject: '🍵 Bienvenue dans la newsletter Thé Tip Top', html, text, }); }; export default { sendNewsletterConfirmationEmail, };