Mengapakah PHPmailer SMTP connect() saya gagal dengan Gmail dan bagaimana saya boleh membetulkannya?

Barbara Streisand
Lepaskan: 2024-10-27 04:26:03
asal
813 orang telah melayarinya

Why is my PHPmailer SMTP connect() failing with Gmail and how can I fix it?

SMTP connect() failed PHPmailer - PHP

Isu ini timbul apabila anda menghadapi ralat semasa cuba menghantar e-mel menggunakan PHPmailer, khususnya "Ralat Mailer: Sambungan SMTP() gagal." Punca asas selalunya berkaitan dengan tetapan pengesahan dan keserasian dengan pembekal e-mel anda.

Dalam keadaan ini, penyelesaiannya melibatkan mendayakan apl yang kurang selamat untuk akaun Google anda. Google baru-baru ini melaksanakan pengesahan XOAUTH2, yang memerlukan anda membenarkan akses kepada aplikasi pihak ketiga secara eksplisit.

Untuk menyelesaikannya:

  • Lawati https://www.google.com/settings /security/lesssecureapps
  • Semak pilihan "Hidupkan"
  • Langkah ini membenarkan PHPmailer untuk menyambung ke pelayan SMTP Google menggunakan mekanisme XOAUTH2.

Selain itu, pastikan anda menggunakan tetapan SMTP yang betul:

  • SMTP Server: smtp.gmail.com
  • Port: 587
  • TLS: Didayakan
  • Pengesahan: Ya
  • Nama Pengguna: Alamat e-mel akaun Google anda
  • Kata Laluan: Kata laluan akaun Google anda

Berikut ialah contoh kod yang dikemas kini dengan tetapan ini:

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

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

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>
Salin selepas log masuk

Dengan mendayakan apl yang kurang selamat dan menggunakan tetapan SMTP yang betul, anda sepatutnya berjaya menghantar e-mel menggunakan PHPmailer dengan pelayan SMTP Gmail.

Atas ialah kandungan terperinci Mengapakah PHPmailer SMTP connect() saya gagal dengan Gmail dan bagaimana saya boleh membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!