Réponses par mail dans GestSup arrivaient avec 2 heures de décalage.

Vous avez trouvé un bug dans l'application (dernière version stable ou bêta): Décrivez le ici afin que la correction soit intégrée a la prochaine version.
Répondre
remi_bsod
Gsup LEVEL 0
Messages : 2
Enregistré le : lun. 12 oct. 2026 15:50

Bonjour, voici un bug que j'avais trouvé il y a quelques mois ou alors je n'avais pas trouvé l'endroit pour changer cela.
Voilà ce que j'ai fait pour régler le problème qui est réapparu lors de mes mises à jour sur GestSup.
Je ne sais pas si il s'agit de la bonne façon de faire car je ne suis pas développeur.
J'ai utilisé l'IA pour cette mini documentation.

============================================================
CORRECTION BUG HEURE UTC - GESTSUP IMAP
============================================================

[ PROBLÈME ]

Les réponses par mail dans GestSup arrivaient avec
2 heures de décalage.

Exemple :
------------------------------------------------------------
Heure réelle : 16:27
Heure affichée ticket: 14:27
------------------------------------------------------------

Le serveur Linux était correctement configuré,
mais GestSup récupérait l’heure UTC brute des
mails IMAP provenant d’Exchange / O365.


============================================================
[ 1 ] VÉRIFICATION DU SERVEUR
============================================================

Commande :
------------------------------------------------------------
timedatectl
------------------------------------------------------------

Résultat attendu :
------------------------------------------------------------
Time zone: Europe/Paris
------------------------------------------------------------


============================================================
[ 2 ] VÉRIFICATION PHP
============================================================

Commande :
------------------------------------------------------------
php -i | grep timezone
------------------------------------------------------------

Fichiers corrigés :
------------------------------------------------------------
/etc/php/8.2/cli/php.ini
/etc/php/8.2/apache2/php.ini
------------------------------------------------------------

Configuration :
------------------------------------------------------------
date.timezone = Europe/Paris
------------------------------------------------------------


============================================================
[ 3 ] VÉRIFICATION CRON GESTSUP
============================================================

Fichier :
------------------------------------------------------------
/etc/crontab
------------------------------------------------------------

Ancienne ligne :
------------------------------------------------------------
*/5 * * * * root php /var/www/html/mail2ticket.php > /dev/null
------------------------------------------------------------

Nouvelle ligne :
------------------------------------------------------------
*/5 * * * * root php -d date.timezone=Europe/Paris /var/www/html/mail2ticket.php > /dev/null
------------------------------------------------------------


============================================================
[ CAUSE RÉELLE DU BUG ]
============================================================

Le serveur mail Exchange / O365 envoyait les dates
des mails au format UTC.

Dans le fichier :
------------------------------------------------------------
/var/www/html/core/imap_oauth.php
------------------------------------------------------------

La ligne suivante récupérait directement l’heure UTC :
------------------------------------------------------------
$date=$imap_mail->getDate()->toDate()->toDateTimeString();
------------------------------------------------------------

=> Aucune conversion vers Europe/Paris n’était faite.


============================================================
[ CORRECTION APPLIQUÉE ]
============================================================

Remplacement par :
------------------------------------------------------------

$tmpDate = $imap_mail->getDate()->toDate();
$tmpDate->setTimezone(new DateTimeZone('Europe/Paris'));
$date = $tmpDate->format('Y-m-d H:i:s');

------------------------------------------------------------


============================================================
[ RÉSULTAT ]
============================================================

✔ Heure des mails correcte
✔ Réponses IMAP correctes
✔ Tickets GestSup synchronisés avec l’heure locale
✔ Plus de décalage UTC / CEST

Timezone finale utilisée :
------------------------------------------------------------
Europe/Paris
------------------------------------------------------------


============================================================
FIN DE LA CORRECTION
============================================================
Avatar du membre
Flox
Administrateur du site
Messages : 9902
Enregistré le : jeu. 21 juin 2012 19:00

Bonjour,

pouvez-vous transmettre une impression écran de la configuration de votre connecteur ?

Cdt
GestSup: 3.2.53 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3 | https://doc.gestsup.fr/
remi_bsod
Gsup LEVEL 0
Messages : 2
Enregistré le : lun. 12 oct. 2026 15:50

Bonjour,
Merci pour la réponse,
Voila une capture d'écran
capture.jpg
capture.jpg (82.77 Kio) Vu 8 fois
Répondre