Bonjour,
Version de GestSup : 3.1.20
Serveur SMTP : Exchange 2010
J'ai rencontré un problème d'envoi d'email avec un serveur SMTP sans authentification requise sur le port 25.
L'erreur avait lieu uniquement lors des envoie automatique, cela fonctionnait bien lorsque j'utilisai le bouton "Envoyer un mail".
Voici le message d'erreur obtenu avec le mode debug activé :
Malgré une configuration sans authentification, port 25, mon serveur Gestsup voie automatiquement que mon serveur SMTP parle le TLS, ce qui bloque l'envoie de l'email au final.
Après quelques recherches, j'ai trouvé qu'il fallait dans ce cas renseigner le paramètre suivant au niveau de PHPMailer : SMTPAutoTLS = false
Voici la correction que j'ai apporté au fichier core/message.php :
<?php
################################################################################
# @Name : /core/message.php
# @Description : page to send mail
# @Call : /core/auto_mail.php
# @parameters : $from, $to, $message, $object
# @Author : Flox
# @Create : 21/11/2012
# @Update : 24/05/2017
# @Version : 3.1.22
################################################################################
require_once("components/PHPMailer/PHPMailerAutoload.php");
$mail = new PHPmailer();
$mail->CharSet = 'UTF-8'; //ISO-8859-1 possible if string problems
if ($rparameters['mail_smtp_class']=='IsSendMail()') {$mail->IsSendMail();} else {$mail->IsSMTP();}
if($rparameters['mail_secure']=='SSL')
{$mail->Host = "ssl://$rparameters[mail_smtp]";}
elseif($rparameters['mail_secure']=='TLS')
{$mail->Host = "tls://$rparameters[mail_smtp]";}
else
{$mail->Host = "$rparameters[mail_smtp]";$mail->SMTPAutoTLS = false;}
$mail->SMTPAuth = $rparameters['mail_auth'];
if ($rparameters['debug']==1) $mail->SMTPDebug = 2;
if ($rparameters['mail_secure']!=0) $mail->SMTPSecure = $rparameters['mail_secure'];
if ($rparameters['mail_port']!=25) $mail->Port = $rparameters['mail_port'];
$mail->Username = "$rparameters[mail_username]";
$mail->Password = "$rparameters[mail_password]";
$mail->IsHTML(true); // Envoi en html
$mail->From = "$from";
$mail->FromName = "$from";
$mail->AddAddress("$to");
$mail->AddReplyTo("$from");
$mail->Subject = "$object";
$mail->Body = "$message";
if (!$mail->Send())
{
echo '<div class="alert alert-block alert-danger"><center><i class="icon-remove red"></i> <b>'.T_('Message non envoyé, vérifier la configuration de votre serveur de messagerie').'.</b> (';
echo $mail->ErrorInfo;
echo ')</center></div>';
}
$mail->SmtpClose();
?>
__________________________________________
Si ça peut aider certains, voir être ajouté au développement (cela a peut-être des impacts en l'état pour certaines configurations).
[Corrigé 3.1.22] Problème d'envoie automatique d'email
Bonjour,
Effectivement ce problème à déja été corrigé pour la 3.1.22, pour le valider pourriez vous tester le remplacement de votre fichier ./core/messages.php par celui en pièce jointe.
Cordialement.
Effectivement ce problème à déja été corrigé pour la 3.1.22, pour le valider pourriez vous tester le remplacement de votre fichier ./core/messages.php par celui en pièce jointe.
Cordialement.
- Fichiers joints
-
- message.zip
- (961 Octets) Téléchargé 298 fois
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/