Probleme de malformation de header sur les mails

Hello
je viens d’installer la v20 et j’ai un probleme de mail. les logs indiquent une malformation des headers

2024-10-04 10:04:18 1swdIQ-002JTy-00 rewrite: malformed address: Return-Path: =?UTF-8?B?RXNwZXJsd may not follow « =?UTF-8?B?RXNwZXJsdWF0?= » [email protected]

le mail d’erreur mentionne aussi le meme probleme :
Remote server returned '554 5.0.0 <gmail-smtp-in.l.google.com #5.0.0 smtp; 550-5.7.1 [188.165.76.33] Messages with multiple addresses in From: header are 550-5.7.1 not accepted. For more information, go to 550-5.7.1

le from est bizare :

From: « =?UTF-8?B?RXNwZXJsdWF0?= » contact@mondomainecom
Return-Path: =?UTF-8?B?RXNwZXJsdWF0?= [email protected]
Reply-To: [email protected]
Date: Fri, 04 Oct 2024 08:04:17 +0000

J’ai un autre dolibarr installé sur le meme serveur, meme config, en v19.0.2 et aucun probleme

server : openlitespeed / php8.2

Peux tu confirmer que tu utilise la méthode d’envoi « PHP Mail » ?

Peux tu essayer de remplacer cette ligne dans le fichier CMailFile.class.php
$out .= "Return-Path: ".$this->getValidAddress($this->addr_from, 0, 1).$this->eol2;

par

$out .= "Return-Path: ".$this->getValidAddress($this->addr_from, 1, 1).$this->eol2;

Si tu as tjs le pb sur le From , tu peux essayer cette correction la:

$newemail = ($format == 3 ? '"' : '').($encode ? self::encodetorfc2822($name) : $name).($format == 3 ? '"' : '').' <'.$email.'>';

à remplacer par

$newemail = (($format == 3 && !$encode) ? '"' : '').($encode ? self::encodetorfc2822($name) : $name).(($format == 3 && !$encode) ? '"' : '').' <'.$email.'>';

Bonjour,

ne manque il pas un point dans l’email

From: « =?UTF-8?B?RXNwZXJsdWF0?= » contact@mondomainecom

oui ca c’est moi qui ai oublié de mettre le . j’ai remplacer mon domaine par modomaine.com

cela ne change rien, j’ai toujours cette erreur dans les logs exim

2024-11-13 12:04:26 1tBBAg-003dPd-1N rewrite: malformed address: Return-Path: =?UTF-8?B?RXNwZXJsd may not follow =?UTF-8?B?RXNwZXJsdWF0?= [email protected]

2024-11-13 12:04:26 1tBBAg-003dPd-1N rewrite: missing or malformed local part (expected word or « < »)

j’ai des wordpress sur le meme serveur et je n’ai pas ca sur les envoi. je n’ai pas ce probleme non plus sur la version 19 de dolibarr.

pour info, j’ai aussi essayé avec et sans avoir rempli « E-mail utilisé pour les retours d’erreur (champ « Errors-To » dans les e-mails envoyés) » dans les parametres smtp
et j’ai aussi essayé sans cette configuration dans mon php ini :

php_admin_value sendmail_path « /usr/sbin/sendmail -t -i -f [email protected] »

mais rien n’y fait. toujours la meme erreur dans mes logs d’exim. il y a un return-path qui n’est pas bon et met le bazar dans les headers du mail sortant

En effet, un Return-Path ne devrait contenir que
Return-Path: <[email protected]>

Mais si après avoir changé la ligne par
$out .= "Return-Path: ".$this->getValidAddress($this->addr_from, 1, 1).$this->eol2;
Tu as toujours
Return-Path: =?UTF-8?B?RXNwZXJsd <[email protected]>

Alors, soit tu n’a pas changé dans la version effective de dolibarr, soit tu as un composant (exim) qui modifie la valeur return-path mise par dolibarr par la sienne. postfix se permet cela dans certaines config.

Peux tu confirmer que tu utilise la méthode d’envoi « PHP Mail » ?

oui j’utilise bien php mail. Exim ne modifie rien sinon j’aurai le meme souci sur mes autres sites sur le meme serveurs, mais ce n’est pas le cas.

j’ai juste forcé le sender au niveau php avec la ligne

/usr/sbin/sendmail -t -i -f [email protected]

le chemin ne pointe pas vers sendmail mais est un lien symbolique vers exim4

J’ai fait la modification recommandée sur le fichier ./core/class/CMailFile.class.php

mais peut etre que le test mail du panneau de configuration n’utilise pas ce fichier la ?

Si, il utilise bien la couche commune.
Tu ne devrais pas avoir à forcer le sender dans php. Mais peu importe, cela devrait marcher dans les 2 cas.
Peux tu faire ceci;. Ajoute dans accueil - configuration - divers, la constante MAIN_MAIL_DEBUG. refait un test d’envoi.
Et post le contenu du fichier dolibarr_mail.log

si je ne force pas le sender, l’enveloppe part avec le user php, c’est pas terrible. c’est pour ca.
MAIN_MAIL_DEBUG en nom et valeur ? je laisse vide ?

le voila :

From: =?UTF-8?B?RXNwZXJsdWF0?= [email protected]
Return-Path: [email protected]
Reply-To: [email protected]
Date: Wed, 13 Nov 2024 14:39:02 +0000
Message-ID: 1731508742.phpmail-dolibarr-test@3549d3983220356b1f448faa884d65cbf9b5905a
X-Dolibarr-TRACKID: test@3549d3983220356b1f448faa884d65cbf9b5905a
X-RemoteAddr: 91.161.82.145
X-Mailer: Dolibarr version 20.0.1 (using php mail)
Mime-Version: 1.0
Content-Type: multipart/mixed;
boundary=« multipart_x.1731508742.x_boundary »
Content-Transfer-Encoding: 8bit
Feedback-ID: test:3549d3983220356b1f448faa884d65cbf9b5905a:dolib
This is a message with multiple parts in MIME format.
–multipart_x.1731508742.x_boundary
Content-Type: text/plain; charset=UTF-8

Bonjour
Ceci est un mail de test envoyé à [email protected].
Les lignes sont séparées par un retour à la ligne.

–multipart_x.1731508742.x_boundary–

et le log exim4 correspondant :

2024-11-13 15:39:02 1tBEWM-003mjG-0u rewrite: malformed address: Return-Path: <contact@mondomaine. may not follow =?UTF-8?B?RXNwZXJsdWF0?= [email protected]

2024-11-13 15:39:02 1tBEWM-003mjG-0u rewrite: missing or malformed local part (expected word or « < »)
2024-11-13 15:39:02 1tBEWM-003mjG-0u <= [email protected] U=user_php P=local S=1234
2024-11-13 15:39:02 1tBEWM-003mjG-0u => [email protected] R=dnslookup T=remote_smtp H=mail.mondomaine.com [82.165.107.159] X=TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256 CVsk,CN=Plesk,[email protected]" C=« 250 2.0.0 Ok: queued as 97D006258F »
2024-11-13 15:39:02 1tBEWM-003mjG-0u Completed
2024-11-13 15:45:50 Start queue run: pid=903200
2024-11-13 15:45:50 End queue run: pid=903200