Mengapa PHPMailer Saya Memberi Saya Ralat \'SMTP connect() Failed\'?

Mary-Kate Olsen
Lepaskan: 2024-10-26 03:11:28
asal
867 orang telah melayarinya

Why Is My PHPMailer Giving Me the

SMTP connect() gagal PHPMailer: Menyelesaikan Isu dalam PHP

PHPMailer ialah perpustakaan PHP yang popular untuk menghantar e-mel menggunakan SMTP. Apabila anda menghadapi ralat "Mailer Ralat: SMTP connect() failed", ia menunjukkan isu dalam mewujudkan sambungan dengan pelayan SMTP.

Memahami Ralat

Mesej ralat "Ralat Mailer: SMTP connect() failed" menunjukkan bahawa PHPMailer tidak dapat menyambung ke pelayan SMTP yang ditentukan. Ini boleh disebabkan oleh pelbagai sebab, seperti:

  • Tetapan SMTP yang salah
  • Port disekat
  • Isu berkaitan pelayan
  • Konfigurasi firewall

Mengatasi Isu

Untuk menyelesaikan isu ini, ikut langkah berikut:

  1. Sahkan Tetapan SMTP: Pastikan tetapan SMTP dalam kod anda (hos, port, nama pengguna dan kata laluan) adalah betul.
  2. Semak Penyekatan Port: Kebanyakan pelayan SMTP menggunakan port 25, 465 atau 587 untuk sambungan selamat. Semak sama ada port ini dibuka pada pelayan anda.
  3. Periksa Isu Pelayan: Hubungi pembekal pelayan SMTP anda untuk memastikan tiada gangguan berkaitan pelayan atau isu penyelenggaraan.
  4. Konfigurasikan Firewall: Jika firewall dikonfigurasikan pada pelayan anda, pastikan ia membenarkan sambungan keluar pada port SMTP yang diperlukan.

Pertimbangan Khusus untuk Gmail SMTP

Jika anda menggunakan pelayan SMTP Google dengan PHPMailer, ingat perkara berikut:

  • Google menggunakan mekanisme pengesahan OAuth 2.0 yang lebih baharu.
  • Dayakan "Apl yang kurang selamat " dalam tetapan Akaun Google anda untuk membenarkan PHPMailer menyambung.
  • Gunakan TLS melalui port 587 dan bukannya SSL melalui port 465.

Kod Contoh dengan Google SMTP

Berikut ialah versi semakan kod anda yang merangkumi perubahan yang diperlukan untuk Gmail SMTP:

<code class="php">require "class.phpmailer.php";
$mail = new PHPMailer(); 
$mail->IsSMTP();                              // send via SMTP
$mail->Host = "tls://smtp.gmail.com";
$mail->SMTPAuth = true;                       // turn on SMTP authentication
$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->Port = 587;
$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 langkah-langkah ini, anda seharusnya dapat menyelesaikan masalah "SMTP connect() failed " ralat dan berjaya menghantar e-mel menggunakan PHPMailer.

Atas ialah kandungan terperinci Mengapa PHPMailer Saya Memberi Saya Ralat \'SMTP connect() Failed\'?. 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!