Rumah > Soal Jawab > teks badan
Saya terus mendapat mesej ralat apabila cuba menghantar e-mel menggunakan PHP mailer (localhost). Atau mailer php tidak akan berfungsi pada localhost?
<?php //Import PHPMailer classes into the global namespace //These must be at the top of your script, not inside a function use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception; require 'src/Exception.php'; require 'src/PHPMailer.php'; require 'src/SMTP.php'; //Load Composer's autoloader require 'vendor/autoload.php'; //Create an instance; passing `true` enables exceptions $mail = new PHPMailer(true); try { //Server settings $mail->SMTPDebug = SMTP::DEBUG_SERVER; //Enable verbose debug output $mail->isSMTP(); //Send using SMTP $mail->Host = 'smtp.gmail.com'; //Set the SMTP server to send through $mail->SMTPAuth = true; //Enable SMTP authentication $mail->Username = 'default@gmail.com'; //SMTP username $mail->Password = '00000120'; //SMTP password // $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; //Enable implicit TLS encryption $mail->Port = 465; //TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS` //Recipients $mail->setFrom('NatsuDragneelxd42069@gmail.com', 'Mailer'); $mail->addAddress('Received@gmail.com', 'Joe User'); //Add a recipient //$mail->addAddress('ellen@example.com'); //Name is optional $mail->addReplyTo('Noreply@gmail.com', 'Info'); // $mail->addCC('cc@example.com'); // $mail->addBCC('bcc@example.com'); //Attachments // $mail->addAttachment('/var/tmp/file.tar.gz'); //Add attachments // $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); //Optional name //Content $mail->isHTML(true); //Set email format to HTML $mail->Subject = 'Here is the subject'; $mail->Body = 'This is the HTML message body <b>in bold!</b>'; $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; $mail->send(); echo 'Message has been sent'; } catch (Exception $e) { echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}"; }
Ini adalah ralat yang saya dapat:
Pelayan-> Ralat SMTP: Tidak dapat menyambung ke hos SMTP. Mesej tidak dapat dihantar. Ralat Pengirim: Ralat SMTP: Tidak dapat menyambung ke hos SMTP.
P粉3641297442024-02-26 11:12:42
Saya tidak tahu mengapa anda mengulas baris ini, tetapi ia akan membuat sambungan gagal kerana ia akan cuba membuat sambungan tidak disulitkan ke port yang memerlukan penyulitan:
// $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
Nyah komen dan anda mungkin bertuah. Anda juga mungkin ingin mencuba tetapan SMTPDebug = SMTP::DEBUG_CONNECTION
kerana ia akan memberi anda lebih banyak maklumat tentang fasa TLS sambungan.
Ini mungkin tidak menyelesaikan keseluruhan masalah anda kerana Gmail (mulai Mei 2022) tidak lagi membenarkan pengesahan menggunakan ID dan kata laluan biasa. Anda perlu beralih kepada menggunakan XOAUTH2 (disokong oleh PHPMailer), atau buat kata laluan aplikasi dalam konsol Gmail.
Juga ambil perhatian bahawa gmail tidak membenarkan anda menggunakan sebarang alamat, hanya alamat 用户名
anda dan alias yang dipratentukan.
Panduan Penyelesaian Masalah PHPMailer.