Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Membetulkan \'Ralat Mailer: SMTP connect() failed\' dalam PHPmailer?
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
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>
dengan:
<code class="php">$mail->Host = 'smtp.gmail.com'; $mail->Port = 587;</code>
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 protected]"; // SMTP username $mail->Password = "mypassword"; // SMTP password $webmaster_email = "[email protected]"; //Reply to this email ID $email="[email 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>
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!