You are not logged in.
Bonjour,
J'ai un problème avec les notifications par courriel pour l'utilisateur et l'observateur.
L'observateur ne reçoit jamais de courriels si l'adresse courriel de l'utilisateur est renseignée (que ça soit écrit Oui ou Non dans "Informez-moi des suites données > Suivi par courriel").
L'envoi de courriel fonctionne très bien: le test fonctionne et l'utilisateur reçoit toujours le email dès que le champ "Informez-moi des suites données > Courriel" est renseigné.
Je dois toujours laisser le champ vide de l'utilisateur pour que l'observateur reçoive une notification.
NB: Le but ultime, c'est d'avoir les 2 deux champs "Informez-moi des suites données" et "Observateurs" auto-remplis avec les adresses courriels respectives (et non modifiable pour l'utilisateur)
Est-ce un bogue du système ou une incompréhension de ma part ?
Comment puis-je faire pour recevoir les courriels aux 2 adresses.
J'ai testé sur 9.2.1 et 9.2.2 et ça fait la même chose.
Environnement de test:
SMTP TLS
php-fpm 5.6 + nginx 1.9 (dans docker sous linux ubuntu 16.04)
mysql 5.7
Merci d'avance.
Offline
pour vos tests vous avez bien 2 adresses différentes observateur et demandeur ?
Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1 Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6
Offline
Oui effectivement, j'ai utilisé 2 adresses différentes.
Offline
Bon il y a sûrement quelque chose que je ne fais pas correctement.
J'ai aussi ajouté un technicien par défaut (avec une 3e adresse différente). Il ne reçoit jamais les notifications (ça rejoint ce billet là => http://forum.glpi-project.org/viewtopic.php?id=161039).
De plus, dans le navigateur que j'utilise (Firefox) pour le technicien, j'ai ouvert la console. Je vois bien passer les requêtes AJAX (notifications ajax activées), mais chaque réponse retourne false. Je ne vois aucune notification apparaitre dans FF et la liste des tickets ne se met pas à jour (À moins que je rafraichisse la page manuellement)
Offline
Je ne trouve vraiment comment faire fonctionner les notifications pour tout le monde.
Malgré tous les tests que j'ai effectués, quoi que je fasse. C'est soit l'un, soit l'autre mais jamais les 2 en même temps :-(
Si quelqu'un a une solution, je suis preneur. Sinon prochaine étape, c'est d'aller modifier le source à la mano (ce que j'aimerais éviter).
Offline
J'ai finalement trouvé le problème.
Dans le fichier inc/commondbtm.class.php
if ($this->notificationqueueonaction) {
QueuedNotification::forceSendFor($this->getType(), $this->fields['id']);
}
Dans QueuedNotification::forceSendFor (inc/queuenotification.class.php)
On a ceci:
$pendings = self::getPendings(
null,
1,
null,
[
'itemtype' => $itemtype,
'items_id' => $items_id
]
);
Le chiffre 1 est la limite SQL pour retourner les notifications à envoyer.
Le premier paramètre null était aussi problématique pour moi. C'est le datetime envoyé à MySQL. S'il est null, ça prend le datetime de création du Ticket.
Sur mon serveur, ça prend plus d'une seconde entre la création et l'envoi des notifications, alors MySQL me retournait toujours aucun record.
J'ai créé une classe qui étend QueuedNotification et qui surcharge forceSendFor dans laquelle je passe datetime + 1s et limit = 3 (correspondant au nombre de personnes concernées par le ticket).
Voilà.
Offline
Le forceSendFor n'est pas pour les notifications de création de ticket.
Tests fait ce jour :
- utilisateur Post-only
- le ticket me concerne et je demande le suivi par mail
- je choisis un observateur avec suivi par mail
- à la validation du ticket, les 2 mails sont partis vers les 2 destinataires différents
Par contre votre problème peut être provoqué par un plugin. Essayez de les désactiver et refaites un essai.
CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6 - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)
Offline
Bonjour,
Qui doit valider le ticket?
Je n'ai aucun plugin installé.
Offline