Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyelesaikan Masa Tamat SMTP Connect() dengan PHPMailer?

Bagaimana untuk Menyelesaikan Masa Tamat SMTP Connect() dengan PHPMailer?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-21 17:50:03980semak imbas

How to Resolve SMTP Connect() Timeouts with PHPMailer?

Ralat SMTP Connect(): Menyelesaikan Masalah Tamat Masa Sambungan

Apabila cuba menghantar e-mel menggunakan PHPMailer, pengguna mungkin menghadapi ralat berikut: "SMTP -> RALAT: Gagal menyambung ke pelayan: Sambungan tamat masa (110)SMTP Connect() gagal dihantar. Ralat Pengirim: SMTP Connect() gagal." Ralat ini selalunya berpunca daripada kesukaran sambungan antara pelayan dan skrip PHP.

Setelah meneliti kod PHP yang disediakan, didapati bahawa baris "$mail->IsSMTP();" telah hadir. Menurut dokumentasi untuk PHPMailer, kaedah ini tidak digunakan lagi dan tidak diperlukan lagi. Mengalih keluar atau mengulas baris ini menyelesaikan isu tamat masa sambungan:

<code class="php">// Remove or comment out the following line:
// $mail->IsSMTP();</code>

Dengan mengalih keluar atau mengulas kaedah "IsSMTP()", sambungan ke pelayan SMTP boleh diwujudkan dengan jayanya. Kod penuh di bawah menunjukkan konfigurasi PHPMailer yang diperbetulkan:

<code class="php">require 'class.phpmailer.php'; // path to the PHPMailer class
require 'class.smtp.php';

$mail = new PHPMailer();

$mail->Mailer = "smtp";
$mail->SMTPDebug = 2;
$mail->Host = "ssl://smtp.gmail.com";
$mail->Port = 587;
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "[email protected]"; // SMTP username
$mail->Password = "mypasswword"; // SMTP password 
$Mail->Priority = 1;

$mail->AddAddress("[email protected]","Name");
$mail->SetFrom($visitor_email, $name);
$mail->AddReplyTo($visitor_email,$name);

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

Dengan melaksanakan perubahan ini, ralat "SMTP Connect() failed" harus diselesaikan, membenarkan e-mel dihantar dengan jayanya melalui PHPMailer menggunakan pengesahan SMTP.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Masa Tamat SMTP Connect() dengan PHPMailer?. 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