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

Patricia Arquette
Libérer: 2024-10-26 03:23:02
original
382 Les gens l'ont consulté

  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 :

<code class="php">require_once 'C:\xampp\htdocs\email\vendor\autoload.php';

define ('GUSER','[email&#160;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;
    }
}</code>
Copier après la connexion

En implémentant ces modifications, vous pouvez établir avec succès une connexion au serveur SMTP de Gmail et transmettre des e-mails via PHPmailer.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!