Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyelesaikan Ralat \"SMTP Connect() Failed\" Apabila Menggunakan PHPmailer dengan Gmail?

Bagaimana untuk Menyelesaikan Ralat \"SMTP Connect() Failed\" Apabila Menggunakan PHPmailer dengan Gmail?

Patricia Arquette
Patricia Arquetteasal
2024-10-26 03:23:02383semak imbas

  How to Resolve

Kegagalan Sambungan SMTP dalam PHPmailer: Menyelesaikan Isu

Apabila menghantar e-mel melalui PHPmailer, pembangun mungkin menghadapi ralat: "Ralat Mailer: SMTP connect() gagal." Masalah ini sering timbul apabila menggunakan pelayan SMTP Gmail.

Penyelesaian terletak pada pelaksanaan mekanisme kebenaran baharu Google, XOAUTH2. Untuk membenarkan PHPmailer menyambung ke SMTP Gmail, anda mesti mendayakan tetapan "Apl Kurang Selamat" dalam akaun Google anda. Langkah ini memberikan akses kepada aplikasi yang tidak mematuhi protokol penyulitan yang ketat.

Selain itu, alih-alih menggunakan SSL melalui port 465, tukar kepada TLS melalui port 587. TLS memastikan permintaan anda disulitkan dengan selamat, memenuhi keperluan Google .

Di bawah ialah coretan kod yang diubah suai yang menggabungkan perubahan ini:

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

Dengan melaksanakan pengubahsuaian ini, anda boleh berjaya mewujudkan sambungan ke pelayan SMTP Gmail dan menghantar e-mel melalui PHPmailer.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \"SMTP Connect() Failed\" Apabila Menggunakan PHPmailer dengan Gmail?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn