Ralat Sambungan SMTP: "SMTP Connect() gagal. Mesej tidak dihantar."
Kod PHP yang disediakan untuk menghantar e-mel menggunakan SMTP menghadapi ralat, "SMTP -> ERROR: Gagal menyambung ke pelayan: Sambungan tamat masa (110)".
Isu ini berpunca daripada kemasukan kedua-dua $mail->IsSMTP(); dan $mail->Mailer = "smtp"; baris dalam kod. Baris ini berlebihan dan, apabila digunakan bersama, boleh membawa kepada konfigurasi yang bercanggah.
Penyelesaian:
Untuk menyelesaikan ralat, ikut penyelesaian yang disediakan dan ulas atau alih keluar baris:
<code class="php">$mail->IsSMTP();</code>
Dengan baris ini dialih keluar, kelas PHPmailer menggunakan tetapan $mail->Mailer untuk menentukan kaedah menghantar e-mel, iaitu SMTP dalam kes ini.
Contoh Kod:
<code class="php">// require necessary classes require 'class.phpmailer.php'; require 'class.smtp.php'; // initialize PHPMailer $mail = new PHPMailer(); // use SMTP $mail->Mailer = "smtp"; // configure SMTP settings $mail->SMTPDebug = 2; $mail->Host = "ssl://smtp.gmail.com"; $mail->Port = 587; $mail->SMTPAuth = true; $mail->Username = "[email protected]"; $mail->Password = "mypasswword"; $mail->Priority = 1; // set email details $mail->AddAddress("[email protected]", "Name"); $mail->SetFrom($visitor_email, $name); $mail->AddReplyTo($visitor_email, $name); // compose email $mail->Subject = "Message from Contact form"; $mail->Body = $user_message; $mail->WordWrap = 50; if (!$mail->Send()) { echo 'Message was not sent.'; echo 'Mailer error: ' . $mail->ErrorInfo; } else { echo 'Message has been sent.'; }</code>
Atas ialah kandungan terperinci Sambungan SMTP: Mengapa saya Mendapat \'SMTP Connect() gagal. Mesej tidak dihantar.\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!