Page 1 sur 1

[Corrigé 3.1.22] Problème d'envoie automatique d'email

Posté : jeu. 29 juin 2017 16:50
par Crof
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é :
Image

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).

Re: Problème d'envoie automatique d'email

Posté : jeu. 29 juin 2017 16:55
par Flox
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.

Re: Problème d'envoie automatique d'email

Posté : jeu. 29 juin 2017 16:55
par Flox

Re: Problème d'envoie automatique d'email

Posté : jeu. 29 juin 2017 17:25
par Crof
Cela fonctionne avec le fichier message.php de la v3.1.21 :)