Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Membetulkan \'Ralat Mailer: SMTP connect() failed\' dalam PHPmailer?

Bagaimana untuk Membetulkan \'Ralat Mailer: SMTP connect() failed\' dalam PHPmailer?

Mary-Kate Olsen
Lepaskan: 2024-10-27 00:03:30
asal
428 orang telah melayarinya

How to Fix

Menyelesaikan masalah SMTP Connect() Kegagalan dalam PHPmailer

Pengenalan

Apabila cuba menghantar e-mel menggunakan PHPmailer, seseorang mungkin menghadapi ralat "Ralat Mailer: SMTP connect() failed." Isu ini timbul disebabkan oleh pelaksanaan mekanisme kebenaran baharu Google yang dikenali sebagai XOAUTH2.

Penyelesaian

Untuk menyelesaikan isu ini, ikut langkah berikut:

1. Dayakan Apl Kurang Selamat dalam Akaun Google

  • Log masuk ke akaun Google anda dan navigasi ke: https://www.google.com/settings/security/lesssecureapps
  • Pastikan bahawa pilihan "Hidupkan akses untuk apl yang kurang selamat" didayakan.

2. Gunakan TLS Over Port 587 Daripada SSL Over Port 465

  • Ubah suai kod untuk menggunakan TLS melalui port 587 dan bukannya SSL melalui port 465. Gantikan baris berikut:

    <code class="php">$mail->Host = "ssl://smtp.gmail.com";
    $mail->Port = 465;</code>
    Salin selepas log masuk

    dengan:

    <code class="php">$mail->Host = 'smtp.gmail.com';
    $mail->Port = 587;</code>
    Salin selepas log masuk

Kod Contoh

Berikut ialah kod yang diubah suai:

<code class="php">require "class.phpmailer.php";
$mail = new PHPMailer(); 
$mail->IsSMTP();                              // send via SMTP
$mail->SMTPDebug = 2;  // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true;                       // turn on SMTP authentication
$mail->SMTPSecure = 'tls'; // secure transfer enabled REQUIRED for GMail
$mail->SMTPAutoTLS = false;
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->Username = "[email&#160;protected]";        // SMTP username
$mail->Password = "mypassword";               // SMTP password
$webmaster_email = "[email&#160;protected]";       //Reply to this email ID
$email="[email&#160;protected]";                // Recipients email ID
$name="My Name";                              // Recipient's name
$mail->From = $webmaster_email;
$mail->FromName = "My Name";
$mail->AddAddress($email,$name);
$mail->AddReplyTo($webmaster_email,"My Name");
$mail->WordWrap = 50;                         // set word wrap
$mail->IsHTML(true);                          // send as HTML
$mail->Subject = "subject";
$mail->Body = "Hi,
This is the HTML BODY ";                      //HTML Body 
$mail->AltBody = "This is the body when user views in plain text format"; //Text Body 

if(!$mail->Send())
{
echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
echo "Message has been sent";
}</code>
Salin selepas log masuk

Dengan melaksanakan perubahan ini, anda sepatutnya berjaya menghantar e-mel menggunakan PHPmailer.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan \'Ralat Mailer: SMTP connect() failed\' dalam PHPmailer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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