[RESOLU] probleme envoi mail SMTP et TLS

Eléphanteau du PHP | 36 Messages

30 janv. 2020, 19:05

Bonjour,

depuis notre passage à office 365 serveur exhange, je n'arrive plus à envoyer de mail via notre site intranet.

j'ai le message suivant :
SMTP ERROR: Failed to connect to server: Unable to find the socket transport "TLS" - did you forget to enable it when you configured PHP? (5) Mailer Error: SMTP Error: Could not connect to SMTP host.

je suis sur le port 587 avec identification. Voici le bout de code :

$mail->IsSMTP();
$mail->SMTPDebug = 1;
// 0 = no output, 1 = errors and messages, 2 = messages only.
$mail->SMTPAuth = true;
$mail->Host = "smtp.office365.com";
$mail->SMTPSecure = 'TLS';
$mail->Port = 587;
$mail->Username = "[email protected]";
$mail->Password = "mot de passe";
$mail->From = "[email protected]"; //adresse d’envoi correspondant au login entrée précédement
$mail->FromName = "mon nom"; // nom qui sera affiché
$mail->Subject = "sujet xxx"; // sujet
$mail->AltBody = "corps du message au format texte"; //Body au format texte

j'ai modifié le php.ini en précisant le smtp d'office 365 .

Pouvez-vous m'aider s'il vous plait ?

merci d'avance,

Paolino

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

31 janv. 2020, 00:52

Ce n'est pas un bug de PHP mais un problème de configuration serveur.
Il faut que tu actives openssl (sur Wampserver c'est dans le menu extension, sur une installe à la mano c'est dans le php.ini)
Et n'oublie pas de redémarrer Apache après avoir fait une modif.

Pour vérifier que ça soit bien pris en compte tu peux faire un phpinfo() et dans le premier tableau tu dois avoir une ligne "Registered Stream Socket Transports" dans laquelle tls doit être indiqué.
Par exemple sur mon serveur il est indiqué : "tcp, udp, unix, udg, ssl, sslv3, tls, tlsv1.0, tlsv1.1, tlsv1.2"
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 36 Messages

31 janv. 2020, 14:43

Merci @rthur pour ta réponse. j'ai regardé. je n'ai pas la même chose que toi : j'ai cela.
tcp, udp, ssl, sslv3, sslv2, tls

je pense qu'avec office il faut le tls 1.2. il faut que je l'active dans le php ini ou c'est sur la partie du serveur?

merci d'avance de ton aide.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

31 janv. 2020, 19:49

Ce n'est pas du côté de PHP à priori vu que tu as bien tls dans la liste mais probablement de la librairie openssl qui n'est pas à jour je dirai
Quand tout le reste a échoué, lisez le mode d'emploi...