diff --git a/src/services/newsletter.service.js b/src/services/newsletter.service.js index 3439abd1..b84b7b85 100644 --- a/src/services/newsletter.service.js +++ b/src/services/newsletter.service.js @@ -21,6 +21,9 @@ const createTransporter = () => { user: process.env.SMTP_USER, pass: process.env.SMTP_PASS, }, + tls: { + rejectUnauthorized: false // Ignore les erreurs de certificat SSL + } }); }; @@ -61,45 +64,351 @@ const sendEmail = async ({ to, subject, html, text }) => { */ export const sendNewsletterConfirmationEmail = async (email) => { const unsubscribeUrl = `${process.env.FRONTEND_URL || 'http://localhost:3000'}/newsletter/unsubscribe?email=${encodeURIComponent(email)}`; + const siteUrl = process.env.FRONTEND_URL || 'http://localhost:3000'; + const gameUrl = `${siteUrl}/game`; + const currentDate = new Date().toLocaleString('fr-FR', { + day: '2-digit', + month: '2-digit', + year: 'numeric', + hour: '2-digit', + minute: '2-digit', + second: '2-digit' + }); 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 +

@@ -107,20 +416,39 @@ export const sendNewsletterConfirmationEmail = async (email) => { `; const text = ` - Bienvenue dans notre newsletter! +🍃 Thé Tip Top - Newsletter Jeu Concours - Nous sommes ravis de vous compter parmi nos abonnés ! +🎉 Bienvenue Utilisateur ! +Votre inscription à la newsletter est confirmée - Vous recevrez désormais nos dernières actualités, offres exclusives et nouveautés directement dans votre boîte mail. +👤 Utilisateur +📅 Inscrit le ${currentDate} - Pour vous désabonner: ${unsubscribeUrl} +🎯 Participez à Notre Jeu Concours ! +À l'occasion de l'ouverture de notre 10ème boutique à Nice, tentez votre chance de gagner des lots exceptionnels ! - © 2025 Thé Tip Top - Tous droits réservés +🎁 Lots à gagner : Thés premium, accessoires, coffrets cadeaux + +🎮 Jouer Maintenant : ${gameUrl} +🌐 Visiter le Site : ${siteUrl} + +📧 Que recevrez-vous ? +🎮 Nouveautés du jeu concours +🏆 Annonces des gagnants +🍃 Découvertes de thés +🎁 Offres exclusives + +Thé Tip Top - Votre spécialiste du thé d'exception +📧 Newsletter envoyée le ${currentDate} + +Pour vous désinscrire : ${unsubscribeUrl} + +© 2025 Thé Tip Top - Tous droits réservés `; return sendEmail({ to: email, - subject: '🍵 Bienvenue dans la newsletter Thé Tip Top', + subject: '🍃 Thé Tip Top | Bienvenue dans la newsletter - Jeu Concours 🎉', html, text, }); diff --git a/src/validations/newsletter.validation.js b/src/validations/newsletter.validation.js index c7fce9d2..60abc01e 100644 --- a/src/validations/newsletter.validation.js +++ b/src/validations/newsletter.validation.js @@ -10,7 +10,7 @@ export const subscribeSchema = z.object({ .string({ required_error: 'L\'email est requis', }) - .email('Format d\'email invalide'), + .regex(/^[^\s@]+@[^\s@]+\.[^\s@]+$/, 'Format d\'email invalide'), }), }); @@ -21,7 +21,7 @@ export const unsubscribeSchema = z.object({ .string({ required_error: 'L\'email est requis', }) - .email('Format d\'email invalide'), + .regex(/^[^\s@]+@[^\s@]+\.[^\s@]+$/, 'Format d\'email invalide'), }), });