{"level":"info","message":"Redis not configured or running in test mode, caching disabled","timestamp":"2026-07-19T08:01:46.300Z"}
{"level":"info","message":"Server running on port 3000","timestamp":"2026-07-19T08:01:50.095Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:02:00.664Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:02:01.065Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:02:01.072Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:02:01.076Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:03:00.743Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:03:00.801Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:03:00.804Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:03:00.806Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:04:00.818Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:04:00.863Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:04:00.865Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:04:00.868Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T08:05:00.887Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:05:00.894Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:05:00.947Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:05:00.950Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:05:00.952Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:06:00.974Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:06:01.021Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:06:01.023Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:06:01.026Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:07:00.069Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:07:00.121Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:07:00.123Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:07:00.125Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:08:00.133Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:08:00.174Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:08:00.176Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:08:00.178Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:09:00.218Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:09:00.262Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:09:00.265Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:09:00.266Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T08:10:00.305Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:10:00.309Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:10:00.352Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:10:00.354Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:10:00.356Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:11:00.393Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:11:00.440Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:11:00.443Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:11:00.445Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:12:00.471Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:12:00.522Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:12:00.525Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:12:00.527Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:13:00.553Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:13:00.600Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:13:00.602Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:13:00.604Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:14:00.630Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:14:00.672Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:14:00.674Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:14:00.676Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T08:15:00.707Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:15:00.713Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:15:00.757Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:15:00.759Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:15:00.761Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:16:00.782Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:16:00.829Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:16:00.831Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:16:00.832Z"}
{"level":"error","message":"Failed to parse cron expression for task reminder job cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:17:00.865Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:17:00.867Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:17:00.979Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:17:00.981Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:17:00.983Z"}
{"cc":"gestionnaire_1@taskea.utemaf.ma, gestionnaire_2@taskea.utemaf.ma","level":"info","message":"Email sent","messageId":"<2e1036b0-fb30-52fa-4464-8a59df6783a7@utemaf.ma>","response":"250 OK id=1wlMhp-000000006BJ-1Ya9","subject":"⏰ Relance : Dossier technique aid daffali","timestamp":"2026-07-19T08:17:01.380Z"}
{"cc":"gestionnaire_1@taskea.utemaf.ma, gestionnaire_2@taskea.utemaf.ma","level":"info","message":"Email sent","messageId":"<fa6013b1-b255-3151-5e4e-7b90253c5aa1@utemaf.ma>","response":"250 OK id=1wlMhp-000000006BJ-1iKr","subject":"⏰ Relance : Dossier technique aid daffali","timestamp":"2026-07-19T08:17:01.414Z"}
{"cc":"gestionnaire_1@taskea.utemaf.ma, gestionnaire_2@taskea.utemaf.ma","level":"info","message":"Email sent","messageId":"<07683745-0351-8085-566c-f51187343808@utemaf.ma>","response":"250 OK id=1wlMhp-000000006BJ-1u02","subject":"⏰ Relance : DOSSIER TECHNIQUE MT EXPROPRIATION  AUTOROUTE BENSLIMANE ","timestamp":"2026-07-19T08:17:01.457Z"}
{"cc":"gestionnaire_1@taskea.utemaf.ma, gestionnaire_2@taskea.utemaf.ma","level":"info","message":"Email sent","messageId":"<70af7396-78d7-9aa3-2495-54aa9dd49c78@utemaf.ma>","response":"250 OK id=1wlMhp-000000006BJ-27Ws","subject":"⏰ Relance : DOSSIER TECHNIQUE MT EXPROPRIATION  AUTOROUTE BENSLIMANE ","timestamp":"2026-07-19T08:17:01.512Z"}
{"cc":"gestionnaire_1@taskea.utemaf.ma, gestionnaire_2@taskea.utemaf.ma","level":"info","message":"Email sent","messageId":"<9a4367b3-6830-2408-3bf3-bc268ce520ea@utemaf.ma>","response":"250 OK id=1wlMhp-000000006BJ-2G2U","subject":"⏰ Relance : ALEM MISE AJOUR ","timestamp":"2026-07-19T08:17:01.543Z"}
{"cc":"gestionnaire_1@taskea.utemaf.ma, gestionnaire_2@taskea.utemaf.ma","level":"info","message":"Email sent","messageId":"<728e9925-40c0-67c1-e3a5-b2983c5396e4@utemaf.ma>","response":"250 OK id=1wlMhp-000000006BJ-2PsA","subject":"⏰ Relance : Etablir dossier technique de morcellement de la réquisition pour extraire la parcelle BArid Al Maghrib","timestamp":"2026-07-19T08:17:01.580Z"}
{"cc":"gestionnaire_1@taskea.utemaf.ma, gestionnaire_2@taskea.utemaf.ma","level":"info","message":"Email sent","messageId":"<b4d3d8ae-8a9c-b8db-933e-e16248c1224e@utemaf.ma>","response":"250 OK id=1wlMhp-000000006BJ-2WG4","subject":"⏰ Relance : Etablir dossier technique de morcellement de la réquisition pour extraire la parcelle BArid Al Maghrib","timestamp":"2026-07-19T08:17:01.607Z"}
{"cc":"gestionnaire_1@taskea.utemaf.ma, gestionnaire_2@taskea.utemaf.ma","level":"info","message":"Email sent","messageId":"<847b7af7-db1c-4165-7b9d-2dc7ce849e21@utemaf.ma>","response":"250 OK id=1wlMhp-000000006BJ-2yRs","subject":"⏰ Relance : calcul des superficies construites  TF133015/23","timestamp":"2026-07-19T08:17:01.713Z"}
{"cc":"gestionnaire_1@taskea.utemaf.ma, gestionnaire_2@taskea.utemaf.ma","level":"info","message":"Email sent","messageId":"<8bfefaec-b6c7-1afd-14b3-c66d1effb8c8@utemaf.ma>","response":"250 OK id=1wlMhp-000000006BJ-35o8","subject":"⏰ Relance : calcul des superficies construites  TF133015/23","timestamp":"2026-07-19T08:17:01.742Z"}
{"cc":"gestionnaire_1@taskea.utemaf.ma, gestionnaire_2@taskea.utemaf.ma","level":"info","message":"Email sent","messageId":"<4331098f-45b9-b9f8-0fc0-68b752b09bda@utemaf.ma>","response":"250 OK id=1wlMhp-000000006BJ-3GOi","subject":"⏰ Relance : ALEM MISE AJOUR ","timestamp":"2026-07-19T08:17:01.783Z"}
{"cc":"gestionnaire_1@taskea.utemaf.ma, gestionnaire_2@taskea.utemaf.ma","level":"info","message":"Email sent","messageId":"<1b88aa7f-1ff1-17c4-216c-ce06545bfd4c@utemaf.ma>","response":"250 OK id=1wlMhp-000000006BJ-3NTZ","subject":"⏰ Relance : levé après terrassement","timestamp":"2026-07-19T08:17:01.809Z"}
{"cc":"gestionnaire_1@taskea.utemaf.ma, gestionnaire_2@taskea.utemaf.ma","level":"info","message":"Email sent","messageId":"<9cd0c651-6d7c-8c42-b4f1-2e1a8301a7b0@utemaf.ma>","response":"250 OK id=1wlMhp-000000006BJ-3toe","subject":"⏰ Relance : HOETEL VICHY MISE ET STATION TEHRMAM FES","timestamp":"2026-07-19T08:17:01.934Z"}
{"cc":"gestionnaire_1@taskea.utemaf.ma, gestionnaire_2@taskea.utemaf.ma","level":"info","message":"Email sent","messageId":"<eb64d4f7-0ee5-d9e5-bd75-e5c38d79ebab@utemaf.ma>","response":"250 OK id=1wlMhp-000000006BJ-42Ii","subject":"⏰ Relance : HOETEL VICHY MISE ET STATION TEHRMAM FES","timestamp":"2026-07-19T08:17:01.966Z"}
{"cc":"gestionnaire_1@taskea.utemaf.ma, gestionnaire_2@taskea.utemaf.ma","level":"info","message":"Email sent","messageId":"<30d3a1f7-1f91-7f2e-b90f-0c8600947dee@utemaf.ma>","response":"250 OK id=1wlMhp-000000006BJ-48SD","subject":"⏰ Relance : RELEVE DE L'Existant t14820/R","timestamp":"2026-07-19T08:17:01.990Z"}
{"cc":"gestionnaire_1@taskea.utemaf.ma, gestionnaire_2@taskea.utemaf.ma","level":"info","message":"Email sent","messageId":"<39715493-72b4-ee33-8f64-dbf5f9dd63a0@utemaf.ma>","response":"250 OK id=1wlMhq-000000006BJ-0Twe","subject":"⏰ Relance : RELEVE DE L'Existant t14820/R","timestamp":"2026-07-19T08:17:02.120Z"}
{"cc":"gestionnaire_1@taskea.utemaf.ma, gestionnaire_2@taskea.utemaf.ma","level":"info","message":"Email sent","messageId":"<42da5ae6-778a-b7b0-f140-dc63f476d2f7@utemaf.ma>","response":"250 OK id=1wlMhq-000000006BJ-0vvh","subject":"⏰ Relance : Etablir dossier technique de morcellement de la réquisition pour extraire la parcelle BArid Al Maghrib","timestamp":"2026-07-19T08:17:02.227Z"}
{"cc":"gestionnaire_1@taskea.utemaf.ma, gestionnaire_2@taskea.utemaf.ma","level":"info","message":"Email sent","messageId":"<03a65630-5d8b-ec29-a924-727de3a1993e@utemaf.ma>","response":"250 OK id=1wlMhq-000000006BJ-1NKc","subject":"⏰ Relance : HOETEL VICHY MISE ET STATION TEHRMAM FES","timestamp":"2026-07-19T08:17:02.332Z"}
{"alreadySentCount":0,"errorCount":0,"level":"info","message":"taskReminderJob run summary","missingEmailCount":0,"sentCount":17,"timestamp":"2026-07-19T08:17:02.334Z","totalCandidates":18}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:18:00.943Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:18:00.992Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:18:00.994Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:18:00.996Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:19:00.023Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:19:00.073Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:19:00.075Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:19:00.077Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T08:20:00.105Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:20:00.108Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:20:00.149Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:20:00.151Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:20:00.153Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:21:00.197Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:21:00.234Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:21:00.235Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:21:00.237Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:22:00.284Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:22:00.322Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:22:00.324Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:22:00.326Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:23:00.369Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:23:00.413Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:23:00.414Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:23:00.416Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:24:00.448Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:24:00.486Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:24:00.488Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:24:00.489Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T08:25:00.526Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:25:00.527Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:25:00.567Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:25:00.569Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:25:00.571Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:26:00.595Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:26:00.636Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:26:00.638Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:26:00.640Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:27:00.684Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:27:00.737Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:27:00.738Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:27:00.740Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:28:00.767Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:28:00.813Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:28:00.815Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:28:00.817Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:29:00.841Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:29:00.884Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:29:00.886Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:29:00.888Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T08:30:00.927Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:30:00.933Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:30:00.971Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:30:00.974Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:30:00.975Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:31:01.005Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:31:01.047Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:31:01.049Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:31:01.050Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:32:00.079Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:32:00.118Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:32:00.120Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:32:00.121Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:33:00.160Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:33:00.213Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:33:00.215Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:33:00.216Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:34:00.227Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:34:00.260Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:34:00.263Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:34:00.265Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T08:35:00.306Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:35:00.310Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:35:00.355Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:35:00.357Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:35:00.359Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:36:00.394Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:36:00.430Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:36:00.432Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:36:00.433Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:37:00.467Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:37:00.502Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:37:00.503Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:37:00.505Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:38:00.546Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:38:00.584Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:38:00.585Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:38:00.587Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:39:00.625Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:39:00.661Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:39:00.663Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:39:00.664Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T08:40:00.699Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:40:00.703Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:40:00.741Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:40:00.743Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:40:00.745Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:41:00.771Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:41:00.810Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:41:00.821Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:41:00.822Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:42:00.846Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:42:00.882Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:42:00.884Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:42:00.886Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:43:00.926Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:43:00.963Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:43:00.964Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:43:00.966Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:44:00.999Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:44:01.033Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:44:01.036Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:44:01.037Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T08:45:00.076Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:45:00.080Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:45:00.115Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:45:00.118Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:45:00.119Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:46:00.154Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:46:00.191Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:46:00.193Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:46:00.194Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:47:00.233Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:47:00.268Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:47:00.270Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:47:00.272Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:48:00.316Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:48:00.352Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:48:00.354Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:48:00.355Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:49:00.391Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:49:00.442Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:49:00.444Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:49:00.446Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T08:50:00.471Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:50:00.474Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:50:00.512Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:50:00.514Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:50:00.515Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:51:00.558Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:51:00.596Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:51:00.597Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:51:00.599Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:52:00.630Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:52:00.678Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:52:00.680Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:52:00.684Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:53:00.697Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:53:00.736Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:53:00.738Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:53:00.740Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:54:00.781Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:54:00.819Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:54:00.821Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:54:00.823Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T08:55:00.853Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:55:00.857Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:55:00.895Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:55:00.898Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:55:00.899Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:56:00.923Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:56:00.960Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:56:00.962Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:56:00.963Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:57:01.003Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:57:01.043Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:57:01.046Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:57:01.047Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:58:00.077Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:58:00.121Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:58:00.123Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:58:00.124Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T08:59:00.146Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T08:59:00.180Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T08:59:00.183Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T08:59:00.185Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T09:00:00.225Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:00:00.230Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:00:00.324Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:00:00.325Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:00:00.327Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:01:00.292Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:01:00.336Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:01:00.337Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:01:00.339Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:02:00.366Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:02:00.404Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:02:00.406Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:02:00.407Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:03:00.447Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:03:00.494Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:03:00.496Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:03:00.497Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:04:00.526Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:04:00.568Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:04:00.570Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:04:00.571Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T09:05:00.586Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:05:00.590Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:05:00.629Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:05:00.631Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:05:00.633Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:06:00.664Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:06:00.699Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:06:00.700Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:06:00.702Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:07:00.739Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:07:00.775Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:07:00.778Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:07:00.780Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:08:00.814Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:08:00.849Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:08:00.850Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:08:00.852Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:09:00.889Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:09:00.926Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:09:00.928Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:09:00.929Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T09:10:00.978Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:10:01.015Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:10:01.055Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:10:01.057Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:10:01.059Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:11:00.045Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:11:00.079Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:11:00.081Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:11:00.082Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:12:00.130Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:12:00.164Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:12:00.166Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:12:00.168Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:13:00.204Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:13:00.240Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:13:00.243Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:13:00.244Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:14:00.282Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:14:00.317Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:14:00.319Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:14:00.321Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T09:15:00.359Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:15:00.364Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:15:00.400Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:15:00.402Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:15:00.403Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:16:00.432Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:16:00.466Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:16:00.468Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:16:00.470Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:18:00.591Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:18:00.629Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:18:00.631Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:18:00.633Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:19:00.663Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:19:00.705Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:19:00.707Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:19:00.708Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T09:20:00.737Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:20:00.741Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:20:00.778Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:20:00.780Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:20:00.782Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:21:00.807Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:21:00.849Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:21:00.851Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:21:00.853Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:22:00.886Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:22:00.920Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:22:00.922Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:22:00.924Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:23:00.970Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:23:01.011Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:23:01.013Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:23:01.015Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:24:00.038Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:24:00.073Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:24:00.075Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:24:00.076Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T09:25:00.115Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:25:00.118Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:25:00.156Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:25:00.157Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:25:00.159Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:26:00.192Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:26:00.236Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:26:00.237Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:26:00.239Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:27:00.272Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:27:00.317Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:27:00.319Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:27:00.322Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:28:00.347Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:28:00.390Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:28:00.392Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:28:00.393Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:29:00.425Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:29:00.460Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:29:00.462Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:29:00.463Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T09:30:00.502Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:30:00.505Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:30:00.541Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:30:00.542Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:30:00.544Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:31:00.576Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:31:00.620Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:31:00.622Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:31:00.623Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:32:00.645Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:32:00.689Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:32:00.692Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:32:00.694Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:33:00.717Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:33:00.757Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:33:00.758Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:33:00.760Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:34:00.799Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:34:00.847Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:34:00.849Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:34:00.851Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T09:35:00.868Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:35:00.872Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:35:00.914Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:35:00.915Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:35:00.916Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:36:00.947Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:36:00.989Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:36:00.990Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:36:00.992Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:37:00.029Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:37:00.067Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:37:00.069Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:37:00.071Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:38:00.109Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:38:00.152Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:38:00.154Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:38:00.155Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:39:00.187Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:39:00.227Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:39:00.230Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:39:00.231Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T09:40:00.257Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:40:00.262Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:40:00.311Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:40:00.313Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:40:00.314Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:41:00.343Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:41:00.388Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:41:00.391Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:41:00.393Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:42:00.411Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:42:00.447Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:42:00.449Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:42:00.450Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:43:00.494Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:43:00.529Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:43:00.530Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:43:00.532Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:44:00.576Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:44:00.616Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:44:00.617Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:44:00.618Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T09:45:00.651Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:45:00.655Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:45:00.694Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:45:00.696Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:45:00.697Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:46:00.727Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:46:00.768Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:46:00.770Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:46:00.771Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:47:00.810Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:47:00.851Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:47:00.853Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:47:00.854Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:48:00.881Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:48:00.920Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:48:00.922Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:48:00.923Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:49:00.959Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:49:01.003Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:49:01.006Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:49:01.007Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T09:50:00.025Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:50:00.029Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:50:00.066Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:50:00.068Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:50:00.069Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:52:00.162Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:52:00.202Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:52:00.203Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:52:00.205Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:53:00.236Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:53:00.268Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:53:00.270Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:53:00.271Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:54:00.312Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:54:00.356Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:54:00.358Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:54:00.359Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T09:55:00.388Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:55:00.393Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:55:00.430Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:55:00.432Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:55:00.434Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:56:00.471Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:56:00.513Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:56:00.515Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:56:00.517Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:57:00.543Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:57:00.577Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:57:00.579Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:57:00.580Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:58:00.658Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:58:00.703Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:58:00.705Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:58:00.706Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T09:59:00.694Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T09:59:00.742Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T09:59:00.744Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T09:59:00.745Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T10:00:00.775Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:00:00.780Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:00:00.827Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:00:00.828Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:00:00.830Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:01:00.845Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:01:00.885Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:01:00.887Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:01:00.889Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:02:00.915Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:02:00.954Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:02:00.956Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:02:00.957Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:03:00.987Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:03:01.044Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:03:01.047Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:03:01.048Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:04:00.071Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:04:00.104Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:04:00.106Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:04:00.107Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T10:05:00.146Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:05:00.149Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:05:00.188Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:05:00.190Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:05:00.191Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:06:00.221Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:06:00.261Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:06:00.263Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:06:00.264Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:08:00.389Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:08:00.438Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:08:00.440Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:08:00.442Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:09:00.458Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:09:00.496Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:09:00.497Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:09:00.499Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T10:10:00.535Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:10:00.547Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:10:00.624Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:10:00.627Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:10:00.629Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:11:00.624Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:11:00.662Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:11:00.664Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:11:00.665Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:12:00.705Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:12:00.748Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:12:00.750Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:12:00.752Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:13:00.776Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:13:00.812Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:13:00.814Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:13:00.816Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:14:00.861Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:14:00.907Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:14:00.909Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:14:00.911Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T10:15:00.935Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:15:00.938Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:15:00.976Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:15:00.978Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:15:00.979Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:16:00.019Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:16:00.058Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:16:00.061Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:16:00.064Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:17:00.099Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:17:00.139Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:17:00.141Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:17:00.142Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:18:00.184Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:18:00.230Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:18:00.232Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:18:00.233Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:19:00.255Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:19:00.298Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:19:00.299Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:19:00.301Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T10:20:00.335Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:20:00.340Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:20:00.376Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:20:00.378Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:20:00.380Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:21:00.414Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:21:00.450Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:21:00.451Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:21:00.453Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:22:00.501Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:22:00.544Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:22:00.546Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:22:00.547Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:23:00.575Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:23:00.608Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:23:00.610Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:23:00.612Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:24:00.646Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:24:00.681Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:24:00.683Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:24:00.684Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T10:25:00.730Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:25:00.733Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:25:00.767Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:25:00.768Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:25:00.769Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:26:00.797Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:26:00.843Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:26:00.844Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:26:00.846Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:27:00.873Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:27:00.913Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:27:00.915Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:27:00.916Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:28:00.949Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:28:00.986Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:28:00.988Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:28:00.990Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:29:00.025Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:29:00.060Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:29:00.062Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:29:00.063Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T10:30:00.096Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:30:00.100Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:30:00.136Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:30:00.138Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:30:00.140Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:31:00.179Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:31:00.214Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:31:00.216Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:31:00.217Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:32:00.267Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:32:00.305Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:32:00.307Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:32:00.308Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:33:00.337Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:33:00.378Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:33:00.381Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:33:00.382Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T10:35:00.503Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:35:00.506Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:35:00.547Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:35:00.549Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:35:00.550Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:36:00.575Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:36:00.609Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:36:00.610Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:36:00.611Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:37:00.658Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:37:00.692Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:37:00.694Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:37:00.695Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:38:00.743Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:38:00.778Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:38:00.780Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:38:00.781Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:39:00.829Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:39:00.864Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:39:00.865Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:39:00.867Z"}
{"error":"delete from `user_2fa_code` where `expires_at` <= CURRENT_TIMESTAMP - write EPIPE","level":"error","message":"Failed to clean expired OTPs","timestamp":"2026-07-19T10:40:00.894Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:40:00.901Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:40:00.936Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:40:00.937Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:40:00.939Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:41:00.976Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:41:01.015Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:41:01.018Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:41:01.019Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:42:00.039Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:42:00.074Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:42:00.076Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:42:00.077Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:43:00.110Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:43:00.147Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:43:00.148Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:43:00.150Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:44:00.182Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:44:00.217Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:44:00.219Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:44:00.220Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T10:45:00.252Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:45:00.258Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:45:00.296Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:45:00.298Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:45:00.299Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:46:00.326Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:46:00.361Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:46:00.363Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:46:00.364Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:47:00.392Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:47:00.425Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:47:00.426Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:47:00.428Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:48:00.460Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:48:00.494Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:48:00.495Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:48:00.497Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:49:00.535Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:49:00.572Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:49:00.573Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:49:00.575Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T10:50:00.605Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:50:00.609Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:50:00.643Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:50:00.644Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:50:00.645Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:51:00.676Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:51:00.714Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:51:00.716Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:51:00.717Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:52:00.744Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:52:00.781Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:52:00.782Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:52:00.784Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:53:00.826Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:53:00.867Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:53:00.869Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:53:00.871Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:54:00.894Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:54:00.928Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:54:00.930Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:54:00.931Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T10:55:00.963Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:55:00.967Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:55:01.011Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:55:01.013Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:55:01.015Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:56:00.042Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:56:00.082Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:56:00.085Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:56:00.087Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T10:57:00.113Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T10:57:00.146Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T10:57:00.148Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T10:57:00.149Z"}
{"level":"info","message":"Redis not configured or running in test mode, caching disabled","timestamp":"2026-07-19T15:41:17.929Z"}
{"level":"info","message":"Server running on port 3000","timestamp":"2026-07-19T15:41:21.670Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T15:42:00.367Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T15:42:00.496Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T15:42:00.501Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T15:42:00.506Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T15:43:00.454Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T15:43:00.497Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T15:43:00.499Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T15:43:00.501Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T15:44:00.537Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T15:44:00.581Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T15:44:00.583Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T15:44:00.586Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T15:45:00.635Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T15:45:00.638Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T15:45:00.679Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T15:45:00.681Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T15:45:00.684Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T15:46:00.710Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T15:46:00.749Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T15:46:00.751Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T15:46:00.753Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T15:47:00.796Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T15:47:00.840Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T15:47:00.842Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T15:47:00.844Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T15:48:00.880Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T15:48:00.929Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T15:48:00.931Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T15:48:00.933Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T15:49:00.953Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T15:49:01.000Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T15:49:01.002Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T15:49:01.003Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T15:50:00.028Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T15:50:00.033Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T15:50:00.083Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T15:50:00.085Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T15:50:00.087Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T15:51:00.104Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T15:51:00.141Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T15:51:00.143Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T15:51:00.145Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T15:52:00.200Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T15:52:00.243Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T15:52:00.245Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T15:52:00.247Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T15:54:00.362Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T15:54:00.403Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T15:54:00.406Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T15:54:00.408Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T15:55:00.447Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T15:55:00.450Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T15:55:00.490Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T15:55:00.493Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T15:55:00.494Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T15:56:00.521Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T15:56:00.566Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T15:56:00.568Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T15:56:00.571Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T15:57:00.608Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T15:57:00.651Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T15:57:00.653Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T15:57:00.654Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T15:58:00.692Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T15:58:00.735Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T15:58:00.736Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T15:58:00.738Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T15:59:00.771Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T15:59:00.815Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T15:59:00.817Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T15:59:00.818Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T16:00:00.851Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T16:00:00.855Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T16:00:00.899Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T16:00:00.903Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T16:00:00.905Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T16:01:00.915Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T16:01:00.955Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T16:01:00.957Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T16:01:00.958Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T16:02:00.998Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T16:02:01.035Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T16:02:01.037Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T16:02:01.039Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T16:03:00.085Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T16:03:00.127Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T16:03:00.130Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T16:03:00.131Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T16:04:00.162Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T16:04:00.200Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T16:04:00.202Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T16:04:00.203Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T16:05:00.243Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T16:05:00.248Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T16:05:00.293Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T16:05:00.295Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T16:05:00.296Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T16:06:00.317Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T16:06:00.351Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T16:06:00.354Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T16:06:00.355Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T16:07:00.388Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T16:07:00.426Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T16:07:00.428Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T16:07:00.430Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T16:08:00.466Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T16:08:00.503Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T16:08:00.505Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T16:08:00.507Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T16:09:00.543Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T16:09:00.580Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T16:09:00.582Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T16:09:00.583Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T16:10:00.618Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T16:10:00.624Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T16:10:00.662Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T16:10:00.664Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T16:10:00.666Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T16:11:00.696Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T16:11:00.733Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T16:11:00.735Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T16:11:00.737Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T16:12:00.776Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T16:12:00.813Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T16:12:00.815Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T16:12:00.816Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T16:13:00.847Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T16:13:00.886Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T16:13:00.888Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T16:13:00.890Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T16:14:00.921Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T16:14:00.960Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T16:14:00.961Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T16:14:00.963Z"}
{"level":"info","message":"Expired OTPs cleanup executed","timestamp":"2026-07-19T16:15:00.991Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T16:15:00.996Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T16:15:01.034Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T16:15:01.036Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T16:15:01.037Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T16:16:00.080Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T16:16:00.114Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T16:16:00.116Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T16:16:00.117Z"}
{"level":"error","message":"Failed to parse cron expression cronParser.parseExpression is not a function","timestamp":"2026-07-19T16:17:00.146Z"}
{"level":"info","message":"Connecté à la boîte mail.","timestamp":"2026-07-19T16:17:00.181Z"}
{"level":"info","message":"Trouvé 0 e-mail(s) non lu(s).","timestamp":"2026-07-19T16:17:00.183Z"}
{"level":"info","message":"Déconnexion du serveur IMAP.","timestamp":"2026-07-19T16:17:00.184Z"}
