diff --git a/client/src/pages/AdminSequenceInscrits.tsx b/client/src/pages/AdminSequenceInscrits.tsx index 91ffc1a..411db6e 100644 --- a/client/src/pages/AdminSequenceInscrits.tsx +++ b/client/src/pages/AdminSequenceInscrits.tsx @@ -59,7 +59,11 @@ export default function AdminSequenceInscrits() { const sendEmailsMutation = trpc.inscriptions.sendGroupEmail.useMutation({ onSuccess: (result) => { - toast.success(`Emails envoyés : ${result.sent} réussis, ${result.failed} échecs`); + if (result.sent > 0) { + toast.success(result.message || `${result.sent} email(s) envoyé(s) avec succès`); + } else { + toast.warning("Aucun email envoyé. Vérifiez qu'il y a des apprenants confirmés."); + } }, onError: (error) => { toast.error("Erreur lors de l'envoi : " + error.message); diff --git a/server/routers.ts b/server/routers.ts index a8d6844..9926c10 100644 --- a/server/routers.ts +++ b/server/routers.ts @@ -522,6 +522,9 @@ export const appRouter = router({ fonction: i.apprenant!.fonction, })); + console.log(`[Email Group] Envoi de ${recipients.length} emails de type ${input.type}`); + console.log(`[Email Group] Destinataires:`, recipients.map(r => r.email)); + const result = await sendGroupEmail({ recipients, formationNom: formation.nom, @@ -535,7 +538,12 @@ export const appRouter = router({ lieu: sequence.lieu, }); - return result; + console.log(`[Email Group] Résultat: ${result.sent} envoyés, ${result.failed} échoués`); + + return { + ...result, + message: `${result.sent} email(s) envoyé(s) avec succès, ${result.failed} échoué(s)` + }; }), exportExcel: adminProcedure.input(z.object({ sequenceId: z.number() })).mutation(async ({ input }) => { diff --git a/todo.md b/todo.md index 3366cbf..7f251ff 100644 --- a/todo.md +++ b/todo.md @@ -769,3 +769,20 @@ - [x] Vérifier les logs du serveur pour voir l'erreur exacte (erreur temporaire liée au redémarrage) - [x] Tester le chargement de la page (fonctionne correctement) + +## Bug envoi email fonctionne en dev mais pas en production + +- [x] Vérifier si nodemailer est dans les dependencies (OK, ligne 75) +- [ ] Vérifier que la configuration SMTP est bien enregistrée en production +- [ ] Ajouter une page de diagnostic pour vérifier la config en production +- [ ] Corriger le problème + +## Bug emails de rappel utilisent mail de test au lieu de SMTP + +- [x] Trouver où les emails de rappel sont envoyés dans le code (sendGroupEmail) +- [x] Vérifier qu'ils utilisent bien sendEmail() (OK, ligne 249 emailService.ts) +- [x] Vérifier le filtre des inscriptions (statut='confirmee' ligne 517) +- [x] Confirmer qu'il y a des apprenants confirmés avec vraies adresses +- [x] Ajouter des logs pour diagnostiquer l'envoi (console.log dans routers.ts) +- [x] Ajouter un message de retour avec le nombre d'emails envoyés +- [x] Tester l'envoi de rappel et vérifier les logs (fonctionne correctement)