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
============================================================
Réponses par mail dans GestSup arrivaient avec 2 heures de décalage.
Bonjour,
pouvez-vous transmettre une impression écran de la configuration de votre connecteur ?
Cdt
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/
