É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 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>
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!