"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment résoudre les erreurs « Échec de la connexion SMTP() » lors de l'utilisation de PHPmailer avec Gmail ?

Comment résoudre les erreurs « Échec de la connexion SMTP() » lors de l'utilisation de PHPmailer avec Gmail ?

Publié le 2024-11-08
Parcourir:895

  How to Resolve \

Échec de connexion SMTP dans PHPmailer : résolution du problème

Lors de l'envoi d'e-mails via PHPmailer, les développeurs peuvent rencontrer une erreur : "Erreur de courrier : SMTP connect() a échoué." Ce problème survient souvent lors de l'utilisation du serveur SMTP de Gmail.

La solution réside dans la mise en œuvre par Google d'un nouveau mécanisme d'autorisation, XOAUTH2. Pour permettre à PHPmailer de se connecter au SMTP de Gmail, vous devez activer le paramètre « Applications moins sécurisées » dans votre compte Google. Cette étape autorise l'accès aux applications qui n'adhèrent pas à des protocoles de cryptage stricts.

De plus, au lieu d'utiliser SSL sur le port 465, passez à TLS sur le port 587. TLS garantit que vos requêtes sont cryptées de manière sécurisée, répondant ainsi aux exigences de Google. .

Vous trouverez ci-dessous un extrait de code modifié qui intègre ces modifications :

require_once 'C:\xampp\htdocs\email\vendor\autoload.php';

define ('GUSER','[email protected]');
define ('GPWD','your password');

// make a separate file and include this file in that. call this function in that file.

function smtpmailer($to, $from, $from_name, $subject, $body) { 
    global $error;
    $mail = new PHPMailer();  // create a new object
    $mail->IsSMTP(); // enable SMTP
    $mail->SMTPDebug = 2;  // debugging: 1 = errors and messages, 2 = messages only
    $mail->SMTPAuth = true;  // authentication enabled
    $mail->SMTPSecure = 'tls'; // secure transfer enabled REQUIRED for GMail
    $mail->SMTPAutoTLS = false;
    $mail->Host = 'smtp.gmail.com';
    $mail->Port = 587;

    $mail->Username = GUSER;  
    $mail->Password = GPWD;           
    $mail->SetFrom($from, $from_name);
    $mail->Subject = $subject;
    $mail->Body = $body;
    $mail->AddAddress($to);
    if(!$mail->Send()) {
        $error = 'Mail error: '.$mail->ErrorInfo; 
        return false;
    } else {
        $error = 'Message sent!';
        return true;
    }
}

En implémentant ces modifications, vous pouvez réussir à établir une connexion au serveur SMTP de Gmail et transmettre des e-mails via PHPmailer.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3