[Corrigé 3.1.29] Erreur PHPmailer lorsque pas de technicien

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
yannickq
Gsup LEVEL 2
Messages : 44
Enregistré le : mer. 13 mars 2013 14:49

Bonjour à tous !

Je rencontre un souci depuis la mise à jour en 3.1.25 et l'ajout du champs "adresse de l'émetteur" dans les paramètres. Ce champs n'est pour moi pas utile et est donc laissé vide pour conserver le fonctionnement avant mise à jour 3.1.25, à savoir lorsqu'un e-mail est envoyé c'est l'adresse de l'utilisateur qui set utilisé comme expéditeur.

Les symptômes : lors de l'ouverture d'un ticket par un utilisateur, le champs technicien est fixé à Aucun par défaut, jusque là rien d'anormal.

Par contre si l'utilisateur veut immédiatement effectuer un envoi d'e-mail, l'erreur suivante survient (ici sur une version 3.1.28 en 3.1.25 seul le numéro de ligne du mail.php change):

Code : Tout sélectionner

PHP Fatal error:  Uncaught exception 'PHPMailer\\PHPMailer\\Exception' with message 'Invalid address:  (addAnAddress Reply-To): ' in /var/www/gestsup_test/components/PHPMailer/src/PHPMailer.php:966\nStack trace:\n#0 /var/www/gestsup_test/components/PHPMailer/src/PHPMailer.php(938): PHPMailer\\PHPMailer\\PHPMailer->addOrEnqueueAnAddress('Reply-To', '', '')\n#1 /var/www/gestsup_test/core/mail.php(392): PHPMailer\\PHPMailer\\PHPMailer->addReplyTo('')\n#2 /var/www/gestsup_test/preview_mail.php(27): require('/var/www/gestsu...')\n#3 /var/www/gestsup_test/index.php(884): include('/var/www/gestsu...')\n#4 {main}\n  thrown in /var/www/gestsup_test/components/PHPMailer/src/PHPMailer.php on line 966, referer: http://gestsup_test.jes.fr/index.php?page=preview_mail&id=5562&userid=0&state=%&category=%&subcat=%&viewid=&view=&date_start=&date_end=
Après plusieurs tests voici ce que j'ai constaté :

champs "adresse de l'émetteur" : renseigné => ok les e-mail partent avec l'adresse du champs.
champs "adresse de l'émetteur" : vide => les e-mail ne fonctionnent que si le ticket a un technicien affecté.

Le bout de code qui me semble responsable :

fichier ./core/mail.php - ligne 387 (@Version : 3.1.25) ou ligne 391 ( @Version : 3.1.28 p2)

Code : Tout sélectionner

if ($rparameters['mail_from_adr']!='') {$mail->AddReplyTo("$rparameters[mail_from_adr]");} else {$mail->AddReplyTo("$techrow[mail]");}
j'ai testé avec les patchs beta 3.1.28, le problème est toujours présent.

Dans mon cas si j'enlève le else, les e-mail partent mais pas avec l'adresse de l'tulisateur.


Merci pour votre aide !

Yannick

Gestsup 3.1.35 - OS: Linux Debian 8 Jessie x86_64, Apache: 2.4.10, MySQL: 5.5.55-0+deb8u1, PHP: 5.6.30-0+deb8u1
Avatar du membre
Flox
Administrateur du site
Messages : 9436
Enregistré le : jeu. 21 juin 2012 19:00

Bonjour,

pouvez-vous remplacer votre ligne 391 par :

Code : Tout sélectionner

if ($rparameters['mail_from_adr']!='') {$mail->AddReplyTo("$rparameters[mail_from_adr]");} elseif ($rparameters['$techrow[mail]']!='') {$mail->AddReplyTo("$techrow[mail]");}
Pour information vous donner le droit a vos utilisateur d'afficher le bouton "Envoyer un mail" ?

Cdt
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
yannickq
Gsup LEVEL 2
Messages : 44
Enregistré le : mer. 13 mars 2013 14:49

Bonjour et merci pour le retour rapide, ainsi que la correction qui fonctionne parfaitement (en 3.1.25 et 3.1.28)

Pour vous répondre, oui nous donnons accès à l'envoi d'e-mail aux utilisateurs pour reproduire l'équivalent de la mise en copie d'e-mail à laquelle les gens sont très attachés (souvent pour se justifier) ;)

par exemple : Une personne ouvre un ticket, puis fait un envoi d'e-mail à un responsable pour l'informer de la demande. Sinon dans certains cas les demandes sont centralisées sur une personne qui ouvrent les tickets. Cette personne envoi un e-mail du ticket à l'émetteur d'origine de la demande orale.

Pouvez-vous me dire si cette modification sera appliquée sur les prochains patch ou faut-il que je me garde en tête cette particularité ?

Merci encore !

Yannick

Gestsup 3.1.35 - OS: Linux Debian 8 Jessie x86_64, Apache: 2.4.10, MySQL: 5.5.55-0+deb8u1, PHP: 5.6.30-0+deb8u1
Répondre