Saya tidak menerima sebarang log ralat dalam log ralat php pelayan web saya. Saya telah mencuba beberapa pelayan SMTP yang berbeza (pembekal e-mel lain yang saya tahu berfungsi juga). Ini adalah borang HTML saya:
<form action="/mailfunction.php" method="post" id="contact-form"> <div class="nameInput"> <input id="boxes" type="text" id="fname" name="name" value="" class="formFormL" placeholder="Name" maxlength="50"></input> </div> <div class="emailInput"> <input id="boxes" type="text" id="lname" name="email" value="" class="formFormR" placeholder="Email" maxlength="50"></input> </div> <div class="messageInput"> <textarea id="boxes" id="fname" name="message" value="" class="formFormM" placeholder="Message" maxlength="1000"></textarea> </div> <div style="padding: 5px;"> <button type="submit" value="Send" class="up" name="submit">Send</button> </div> </form>
Ini adalah mailfunction.php saya yang memanggil fungsi mel saya di luar html awam.
<?php require '[REDACTED]/mailer.php'; $name = $_POST['name']; $email = $_POST['email']; $message = $_POST['message']; mails($name, $email, $message); ?>
Ini adalah fungsi mel saya.
<?php //Import PHPMailer classes into the global namespace //These must be at the top of your script, not inside a function use PHPMailerPHPMailerPHPMailer; use PHPMailerPHPMailerSMTP; use PHPMailerPHPMailerException; //Load Composer's autoloader require 'vendor/autoload.php'; //Create an instance; passing `true` enables exceptions $mail = new PHPMailer(true); function mails($name, $email, $message) { if(isset($_POST['submit'])){ $name = $_POST['name']; $email = $_POST['email']; $message = $_POST['message']; try{ $mail = new PHPMailerPHPMailerPHPMailer(); $mail->isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPAuth = true; $mail->Username = '[REDACTED]'; $mail->Password = '[REDACTED]'; $mail->SMTPSecure = 'SSL'; $mail->Port = 465; $mail->setFrom('[REDACTED]'); $mail->addAddress('[REDACTED]'); $mail->isHTML(true); $mail->Subject = 'Message Received (Contact Page)'; $mail->Body = '<h3>Name : $name <br>Email: $email <br>Message : $message</h3>'; $mail->send(); echo 'Message has been sent'; } catch (Exception $e) { echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}"; } } } ?>
Tiada mesej dihantar. Apa yang boleh berlaku di sini? Terima kasih.
Ralat: 2022-07-07 01:16:57 Ralat SMTP: Tidak dapat menyambung ke pelayan: Sambungan ditolak (111) Sambungan SMTP() gagal. https://github.com/PHPMailer/PHPMailer/wiki/Penyelesaian Masalah
Saya tidak nampak apa-apa yang salah dengan kod anda. Ralat ini mungkin disebabkan oleh tetapan kata laluan yang salah. Nah, prosedur kebenaran mungkin tidak betul. Apabila saya menghadapi ralat yang sama, saya menentukan bahawa ini adalah masalah dan menyelesaikannya. Bolehkah anda cuba menonton Video ini untuk menyelesaikan masalah? (Menonton sehingga 5:20 sudah cukup untuk menyelesaikan masalah anda.)