Mailer Error: SMTP Error: Could not connect to SMTP host

Signaler
Messages postés
431
Date d'inscription
samedi 14 mars 2015
Statut
Membre
Dernière intervention
14 septembre 2020
-
Messages postés
431
Date d'inscription
samedi 14 mars 2015
Statut
Membre
Dernière intervention
14 septembre 2020
-
Bonjour,
je vous poste ce message aujourd'hui car depuis deux jours j'ai un soucis qui est survenu que je peine à corriger..
Je m'explique :
j'utilise depuis quelques temps sur mon site PHPMailer qui fonctionnais plutôt bien mais depuis deux jours je n'ai plus de mail qui s'envoi depuis mon serveur VPS d'OVH..
Cependant cela fonctionne toujours sur mon serveur XAMPP en local !

je ne comprend pas vraiment d'où cela peux venir..



Voici le message d'erreur : "Mailer Error: SMTP Error: Could not connect to SMTP host.Le Message n'a pas été envoyé."


Voici le code
function sendmail($objet, $contenu, $destinataire, $valeur) 
{   


// on crée une nouvelle instance de la classe 

  $mail = new PHPMailer(true); 
  $mail->CharSet = "UTF-8";

  // puis on l’exécute avec un 'try/catch' qui teste les erreurs d'envoi 
  try { 
    /* DONNEES SERVEUR */ 
    ##################### 
    $mail->setLanguage('fr', 'PHPMailer/language/');   // pour avoir les messages d'erreur en FR 
   // $mail->SMTPDebug = 0;            // en production (sinon "2") 
  $mail->SMTPDebug = 2;            // décommenter en mode débug 

    $mail->isSMTP();                                                            // envoi avec le SMTP du serveur 
    $mail->Host       = 'SSL0.OVH.NET';                            // serveur SMTP 
    $mail->SMTPAuth   = true;                                            // le serveur SMTP nécessite une authentification ("false" sinon) 
    $mail->Username   = 'postmaster@xxxxx.fr';     // login SMTP 
    $mail->Password   = 'xxxxxxx';                                                // Mot de passe SMTP 
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;     // encodage des données TLS (ou juste 'tls') > "Aucun chiffrement des données"; sinon PHPMailer::ENCRYPTION_SMTPS (ou juste 'ssl') 
    $mail->Port       = 587;                                                               // port TCP (ou 25, ou 465...) 
 
    /* DONNEES DESTINATAIRES */ 
    ########################## 
    $mail->setFrom('postmaster@xxxxxxx', 'xxxxxxxxxxx');  //adresse de l'expéditeur (pas d'accents) 
    $mail->addAddress($destinataire, '');        // Adresse du destinataire (le nom est facultatif) 
    // $mail->addReplyTo('moi@mon_domaine.fr', 'son nom');     // réponse à un autre que l'expéditeur (le nom est facultatif) 
    // $mail->addCC('cc@example.com');            // Cc (copie) : autant d'adresse que souhaité = Cc (le nom est facultatif) 
    // $mail->addBCC('bcc@example.com');          // Cci (Copie cachée) :  : autant d'adresse que souhaité = Cci (le nom est facultatif) 
 
    /* PIECES JOINTES */ 
    ########################## 
    // $mail->addAttachment('../dossier/fichier.zip');         // Pièces jointes en gardant le nom du fichier sur le serveur 
    // $mail->addAttachment('../dossier/fichier.zip', 'nouveau_nom.zip');    // Ou : pièce jointe + nouveau nom 
 
    /* CONTENU DE L'EMAIL*/ 
    ########################## 
    $mail->isHTML(true);                                      // email au format HTML 
    $mail->Subject = utf8_decode($objet);      // Objet du message (éviter les accents là, sauf si utf8_encode) 
    $mail->Body    = $contenu;          // corps du message en HTML - Mettre des slashes si apostrophes 
    $mail->AltBody = ''; // ajout facultatif de texte sans balises HTML (format texte) 
    $mail->charSet = "UTF-8";
 
    $mail->send(); 
    // echo 'Message envoyé.'; 
   
  } 
  // si le try ne marche pas > exception ici 
  catch (Exception $e) 
  { 
    echo "Le Message n'a pas été envoyé. Mailer Error: {$mail->ErrorInfo}"; // Affiche l'erreur concernée le cas échéant 
  }   
} // fin de la fonction sendmail.



EDIT : Ajout du LANGAGE dans les balises de code pour avoir la coloration syntaxique et l'indentation.
Explications sur les balises de code à lire ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Merci d'avance pour votre aide :D

4 réponses

Messages postés
2094
Date d'inscription
mercredi 8 juillet 2020
Statut
Membre
Dernière intervention
24 septembre 2020
224
Messages postés
431
Date d'inscription
samedi 14 mars 2015
Statut
Membre
Dernière intervention
14 septembre 2020
5
merci pour ta réponse !


je viens de regarder scrupulesement mais j'ai un soucis que je viens de m'appercevoir..
Je n'ai aucun echo ou print_r qui s'affiche :/..


Une idée ?
Messages postés
29594
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 septembre 2020
2 791
Essaye en ssl au lieu de tls
$m->SMTPSecure = 'ssl';
$m->Port = "465";


Sinon, tu peux tester en mail sans smtp
$mail = new PHPMailer();

$mail->IsMail();
$mail->From=$from;
$mail->setFrom('postmaster@xxxxxxx', 'xxxxxxxxxxx');  //adresse de l'expéditeur (pas d'accents) 
$mail->addAddress($destinataire, '');        // Adresse du destinataire (le nom est facultatif) 

$mail->CharSet = "utf-8";
$mail->isHTML(true);                                      // email au format HTML 
$mail->Subject = utf8_decode($objet);      // Objet du message (éviter les accents là, sauf si utf8_encode) 
$mail->Body    = $contenu;  

if ($mail->Send()) {
  echo " ok!";
}  else {
   echo "Le Message n'a pas été envoyé. Mailer Error: {$mail->ErrorInfo}";
}


Cordialement,
Jordane
Messages postés
431
Date d'inscription
samedi 14 mars 2015
Statut
Membre
Dernière intervention
14 septembre 2020
5
rien ne change..
J'ai restauré une ancienne version qui fonctionnais et elle ne fonctionne plus..
Je me demande vraiment si cela n'est pas du au système..
de plus les echo lors de l'instanciation de la classe ne s'affiche pas..

Tu en pense quoi ?
Messages postés
29594
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 septembre 2020
2 791
Bonjour,

Tu indiques qu'en local ça fonctionne..... avec les mêmes identifiants ??
$mail->Host       = 'SSL0.OVH.NET';                            // serveur SMTP 
    $mail->SMTPAuth   = true;                                            // le serveur SMTP nécessite une authentification ("false" sinon) 
    $mail->Username   = 'postmaster@xxxxx.fr';     // login SMTP 
    $mail->Password   = 'xxxxxxx';                                                // Mot de passe SMTP 
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;     // encodage des données TLS (ou juste 'tls') > "Aucun chiffrement des données"; sinon PHPMailer::ENCRYPTION_SMTPS (ou juste 'ssl') 
    $mail->Port       = 587;

Car, vu le message d'erreur,
Could not connect to SMTP host.

Cela pourrait signifier que les informations de connexion ne sont pas les bonnes... ou qu'OVH rencontre un souci....


Messages postés
431
Date d'inscription
samedi 14 mars 2015
Statut
Membre
Dernière intervention
14 septembre 2020
5
Bonjour,
oui, oui avec les même identifiants..

Ce que je trouve étrange c'est que je n'ai pas modifier le code entre temps.. (sauf erreur de ma par)

Donc je pense que cela est du sans doute à apache / pare feux ou autre.

Non ?
Messages postés
431
Date d'inscription
samedi 14 mars 2015
Statut
Membre
Dernière intervention
14 septembre 2020
5
le truc c'est que je peux envoyer des mail avec mon serveur de test avec XAMPP.. :/
Messages postés
29594
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 septembre 2020
2 791 >
Messages postés
431
Date d'inscription
samedi 14 mars 2015
Statut
Membre
Dernière intervention
14 septembre 2020

Tu as contacté le support ovh pour savoir ?
Il y a des infos dans les logs d'erreur apache du serveur ?
Et le test avec mon code sans smtp ? il t'affiche quoi ?
Messages postés
431
Date d'inscription
samedi 14 mars 2015
Statut
Membre
Dernière intervention
14 septembre 2020
5 >
Messages postés
29594
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 septembre 2020

je viens de réussir à les avoir, ils m'ont dit qu'il n'avaient pas bloqué les ports de leurs côté et qu'ils ne pouvais rien pour moi.
pour les logs d'apache voici les lignes d'erreurs que j'ai pour aujourd'hui..
[Fri Jul 31 00:00:04.322028 2020] [mpm_prefork:notice] [pid 531] AH00163: Apache/2.4.38 (Debian) OpenSSL/1.1.1d configured -- resuming normal operations
[Fri Jul 31 00:00:04.322065 2020] [core:notice] [pid 531] AH00094: Command line: '/usr/sbin/apache2'
[Fri Jul 31 01:36:45.501054 2020] [php7:error] [pid 20394] [client 37.187.75.16:64233] script '/var/www/intra-ca/favoris/wp-login.php' not found or unable to stat
[Fri Jul 31 01:53:09.602244 2020] [php7:error] [pid 20395] [client 5.188.210.227:59249] script '/var/www/html/echo.php' not found or unable to stat, referer: https://www.google.com/


J'ai fais la commande : tcpdump -i eth0 port 587

la capture avec plein de ligne c'est quand je fais ma demande d'envoie de mail depuis internet et quand sa ne fonctionne pas..





la seconde capture c'est quand je fait ma requête sur mon serveur de test avec la même requête mais qui fonctionne cette fois ^^"





pour l'envoie de mail sans smtp le problème est le même..
Messages postés
431
Date d'inscription
samedi 14 mars 2015
Statut
Membre
Dernière intervention
14 septembre 2020
5 >
Messages postés
431
Date d'inscription
samedi 14 mars 2015
Statut
Membre
Dernière intervention
14 septembre 2020

up svp
Messages postés
431
Date d'inscription
samedi 14 mars 2015
Statut
Membre
Dernière intervention
14 septembre 2020
5
up svp, soucis toujours non résolut.. :/