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

juliendu51100 Messages postés 442 Date d'inscription   Statut Membre Dernière intervention   -  
juliendu51100 Messages postés 442 Date d'inscription   Statut Membre Dernière intervention   -
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

Panth33ra Messages postés 22097 Date d'inscription   Statut Membre Dernière intervention   Ambassadeur 2 006
 
1
juliendu51100 Messages postés 442 Date d'inscription   Statut Membre Dernière intervention   6
 
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 ?
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
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}";
}


1
juliendu51100 Messages postés 442 Date d'inscription   Statut Membre Dernière intervention   6
 
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 ?
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
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....


0
juliendu51100 Messages postés 442 Date d'inscription   Statut Membre Dernière intervention   6
 
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 ?
0
juliendu51100 Messages postés 442 Date d'inscription   Statut Membre Dernière intervention   6
 
le truc c'est que je peux envoyer des mail avec mon serveur de test avec XAMPP.. :/
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753 > juliendu51100 Messages postés 442 Date d'inscription   Statut Membre Dernière intervention  
 
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 ?
0
juliendu51100 Messages postés 442 Date d'inscription   Statut Membre Dernière intervention   6 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
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..
0
juliendu51100 Messages postés 442 Date d'inscription   Statut Membre Dernière intervention   6 > juliendu51100 Messages postés 442 Date d'inscription   Statut Membre Dernière intervention  
 
up svp
0
juliendu51100 Messages postés 442 Date d'inscription   Statut Membre Dernière intervention   6
 
up svp, soucis toujours non résolut.. :/
0