Rumah >pembangunan bahagian belakang >tutorial php >Mengapakah saya mendapat ralat 'SMTP AUTH is Required' semasa menghantar e-mel melalui pelayan SMTP Gmail menggunakan PHP Mailer?

Mengapakah saya mendapat ralat 'SMTP AUTH is Required' semasa menghantar e-mel melalui pelayan SMTP Gmail menggunakan PHP Mailer?

Barbara Streisand
Barbara Streisandasal
2024-12-26 15:16:17512semak imbas

Why am I getting an

Masalah Menghantar E-mel melalui Gmail SMTP Server dengan PHP Mailer: Ralat "SMTP AUTH is Required"

Apabila cuba menghantar e-mel melalui Pelayan SMTP Gmail menggunakan PHP Mailer, anda mungkin menghadapi ralat yang menunjukkan bahawa pengesahan SMTP diperlukan untuk penyerahan mesej pada port 587. Isu ini boleh diselesaikan dengan melaksanakan langkah-langkah berikut:

  1. Sahkan Pengesahan SMTP:
    Pastikan bahawa bendera SMTAuth ditetapkan kepada benar dalam kod PHP Mailer. Ini akan membenarkan pengesahan sebelum menghantar e-mel.
  2. Semak Sekatan Domain:
    Gmail memerlukan sekatan domain untuk membenarkan domain tertentu menghantar e-mel melalui pelayan SMTPnya. Pastikan domain anda (vatandesign.ir) diberi kuasa untuk menghantar e-mel melalui akaun Gmail yang anda gunakan.
  3. Kemas kini SMTP Secure Flag:
    Tetapkan bendera $mail->SMTPSecure kepada 'ssl' atau 'tls' untuk mewujudkan sambungan selamat dengan pelayan SMTP Gmail.
  4. Semak SSL Ketersediaan:
    Sahkan bahawa pelayan SMTP yang anda cuba sambungkan menyokong sambungan SSL. Sesetengah pelayan mungkin tidak menyokong SSL atau TLS.
  5. Lumpuhkan Pengesahan Dua Langkah:
    Untuk meningkatkan keselamatan, Google telah melaksanakan pengesahan dua langkah. Lumpuhkan pengesahan dua langkah untuk akaun Gmail yang anda gunakan untuk menghantar e-mel.
  6. Ubah suai Nilai Nyahpepijat SMTP:
    Tetapkan bendera $mail->SMTPDebug kepada 1 atau 2. Ini akan membolehkan penyahpepijatan dan berikan mesej ralat terperinci.
  7. Uji dan Selesaikan Masalah:
    Laksanakan kod PHP Mailer dan pantau keluaran. Periksa mesej ralat untuk sebarang isu atau amaran.
  8. Kemas kini Konfigurasi Port:
    Percubaan dengan menukar nilai $mail->Port kepada sama ada 465 atau 587. Pelayan yang berbeza mungkin menggunakan port yang berbeza-beza.
  9. Hubungi Pelayan SMTP anda:
    Jika isu berterusan, anda boleh mempertimbangkan untuk menghubungi SMTP pembekal pelayan untuk bantuan lanjut.

Contoh Kod Kerja:

Kod sampel yang disemak ini boleh membantu anda menyelesaikan isu:

$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for Gmail
$mail->Host = "smtp.gmail.com";
$mail->Port = 465; // or 587
$mail->IsHTML(true);
$mail->Username = "[email protected]";
$mail->Password = "password";
$mail->SetFrom("[email protected]");
$mail->Subject = "Test";
$mail->Body = "hello";
$mail->AddAddress("[email protected]");

if (!$mail->Send()) {
    echo "Mailer Error: " . $mail->ErrorInfo;
} else {
    echo "Message has been sent";
}

Kod ini telah diuji dan disahkan untuk berfungsi. Dengan melaksanakan cadangan ini, anda sepatutnya berjaya menghantar e-mel melalui pelayan SMTP Gmail menggunakan PHP Mailer.

Atas ialah kandungan terperinci Mengapakah saya mendapat ralat 'SMTP AUTH is Required' semasa menghantar e-mel melalui pelayan SMTP Gmail menggunakan PHP Mailer?. 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