Ich erhalte keine Fehlerprotokolle im PHP-Fehlerprotokoll meines Webservers. Ich habe mehrere verschiedene SMTP-Server ausprobiert (andere E-Mail-Anbieter, von denen ich weiß, dass sie auch funktionieren). Das ist mein HTML-Formular:
<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>
Dies ist meine mailfunction.php, die meine Mailer-Funktion außerhalb des öffentlichen HTML aufruft.
<?php require '[REDACTED]/mailer.php'; $name = $_POST['name']; $email = $_POST['email']; $message = $_POST['message']; mails($name, $email, $message); ?>
Dies ist meine Mail-Funktion.
<?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}"; } } } ?>
Es wurden keine Nachrichten gesendet. Was könnte hier falsch sein? Danke.
Fehler: 07.07.2022 01:16:57 SMTP-Fehler: Verbindung zum Server nicht möglich: Verbindung abgelehnt (111) SMTP connect() ist fehlgeschlagen. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
我没有发现您的代码有问题。该错误可能是由于密码设置不正确造成的。嗯,授权程序可能不正确。当我遇到同样的错误时,我确定这就是问题所在并解决了它。您可以尝试观看此视频来解决该问题吗?(观看到 5:20 将会足以解决您的问题。)