Heim  >  Fragen und Antworten  >  Hauptteil

Schwerwiegender PHP-Fehler: Nicht abgefangener PHPMailer\PHPMailer\Exception: SMTP-Fehler: Verbindung zum SMTP-Host konnte nicht hergestellt werden

<p>Ich habe versucht, die Funktion „Passwort vergessen“ in PHPMailer zu verwenden und habe diese Fehlermeldung erhalten: </p> <pre class="brush:php;toolbar:false;">[12.05.2023 17:53:32 UTC] Schwerwiegender PHP-Fehler: PHPMailerPHPMailerException nicht erfasst: SMTP-Fehler: Verbindung zum SMTP-Host in /home konnte nicht hergestellt werden /raso1970/cliquedigitalepdo.com4muz.com/vendor/phpmailer/phpmailer/src/PHPMailer.php:2233 Stacktrace: #0 /home/raso1970/cliquedigitalepdo.com4muz.com/vendor/phpmailer/phpmailer/src/PHPMailer.php(2019): PHPMailerPHPMailerPHPMailer->smtpConnect() #1 /home/raso1970/cliquedigitalepdo.com4muz.com/vendor/phpmailer/phpmailer/src/PHPMailer.php(1678): PHPMailerPHPMailerPHPMailer->smtpSend() #2 /home/raso1970/cliquedigitalepdo.com4muz.com/vendor/phpmailer/phpmailer/src/PHPMailer.php(1516): PHPMailerPHPMailerPHPMailer->postSend() #3 /home/raso1970/cliquedigitalepdo.com4muz.com/forgot.php(75): PHPMailerPHPMailerPHPMailer->send() #4 {Haupt} eingeworfen in /home/raso1970/cliquedigitalepdo.com4muz.com/vendor/phpmailer/phpmailer/src/PHPMailer.php in Zeile 2233</pre> <p>Das ist mein Code in Forget.php: </p> <pre class="brush:php;toolbar:false;"><?php ini_set('display_errors', '1'); ini_set('display_startup_errors', '1'); error_reporting(E_ALL); verwenden Sie PHPMailerPHPMailerPHPMailer; verwenden Sie PHPMailerPHPMailerSMTP; verwenden Sie PHPMailerPHPMailerException; ?> <?php ob_start(); ?> <?php include "config/db.php"; <?php include "includes/header.php"; <!-- LOGIN --> <?php require './vendor/autoload.php'; if(!isset($_GET['forgot'])) { weitergeleitet('https://cliquedigitalepdo.com4muz.com/'); }if(IfItIsMethod('post')) { if(isset($_POST['email'])) { $email = $_POST['email']; $länge = 50; $token = bin2hex(openssl_random_pseudo_bytes($length)); if(email_exists($email)) { if($stmt = $connection->prepare("UPDATE Benutzer SET token = :token WHERE user_email = :email")) { $stmt->bindValue(':token', $token); $stmt->bindValue(':email', $email); $stmt->execute([ 'token' => $token, 'email' => $E-Mail ]); // $stmt->close(); /*** * * Konfigurieren Sie PHPMailer * **/ $mail = neuer PHPMailer(true); $mail->isSMTP(); $mail->Host = Config::SMTP_HOST; $mail->Username = Config::SMTP_USER; $mail->Password = Config::SMTP_PASSWORD; $mail->Port = Config::SMTP_PORT; $mail->SMTPSecure = 'PHPMailer::ENCRYPTION_SMTPS'; $mail->SMTPAuth = 'ssl'; $mail->isHTML(true); $mail->CharSet = 'UTF-8'; $mail->setFrom('contact@com4muz.com'); $mail->addAddress('contact@com4muz.com'); $mail->Subject = 'Veuillez réinitialiser votre mot de passe'; $mail->Body = '<p>Klicken Sie auf die Schaltfläche, um Ihr Passwort neu zu initialisieren <a href="https://cliquedigitalepdo.com4muz.com/reset.php?email='.$email.'&token='.$token.' ">https://cliquedigitalepdo.com4muz.com/reset.php?email='.$email.'&token='.$token.'</a> </p>'; if($mail->send()) { $emailSent = true; } anders { echo „NICHT GESENDET“; } } } } }?> <main class="main__content_wrapper"> <!-- Breadcrumb-Abschnitt beginnen --> <section class="breadcrumb__section breadcrumb__bg"> <div class="container"> <div class="row row-cols-1"> <div class="col"> <div class="breadcrumb__content text-center"> <h1 class="breadcrumb__content--title mb-10">Mot de Passe Oublié</h1> <ul class="breadcrumb__content--menu d-flex justify-content-center"> <li class="breadcrumb__content--menu__items"><a href="https://cliquedigitalepdo.com4muz.com/">Accueil</a></li> <li class="breadcrumb__content--menu__items"><span class="text__secondary">Mot de Passe Oublié</span></li> </ul> </div> </div> </div> </div> <img class="breadcrumb__section--shape--bg" src="https://cliquedigitalepdo.com4muz.com/assets/img/other/breadcrumb-shape-bg.webp" alt="breadcrumb-img"> </Abschnitt> <!-- Breadcrumb-Abschnitt beenden --> <!-- Anmeldebereich starten --> <div class="login__section section--padding"> <?php if(!isset($emailSent)): ?> <div class="container"> <form method="post"> <div class="login__section--inner"> <div class="row row-cols-md-1 row-cols-1"> <div class="col"> <div class="account__login"> <div class="account__login--header mb-25"> <h2 class="account__login--header__title h3 mb-10 text-center">Vous Avez Oubliez Votre Mot de passe ?</h2> <p class="account__login--header__desc text-center">Geben Sie Ihre E-Mail-Adresse ein</p> </div> <div class="account__login--inner"> <Label> <input name="email" class="account__login--input" placeholder="Adresse E-Mail" type="email"> </label> <button class="account__login--btn Primary__btn" name="Anmelden" type="submit">Envoyer</button> </div> </div> </div> </div> </div> </form> </div> <?php sonst: ?> <h4>Veuillez Vérifier Votre Boîte Mail</h4> <?php endIf; ?> </div> <!-- Anmeldebereich beenden --> <!-- Newsletter-Bereich starten --> <section class="newsletter__section packet__bg2 section--padding"> <div class="container"> <div class="row row-cols-md-2 row-cols-1 align-items-center"> <div class="col"> <div class="newsletter__content"> <h2 class="newsletter__content--title text-white">Rejoignez Notre Newsletter</h2> <p class="newsletter__content--desc text-white">Devenez les Premiers à découvrez toutes nos currentités Verwandte in der digitalen Welt und neue Trends</p> </div> </div> <div class="col"> <div class="newsletter__subscribe"> <form class="newsletter__subscribe position__relative" action="#"> <Label> <input class="newsletter__subscribe--input" placeholder="Geben Sie Ihre E-Mail-Adresse ein" type="email"> </label> <button class="newsletter__subscribe--button style2 Primary__btn" type="submit">S'incrire <svg class="newsletter__subscribe--button__icon" xmlns="http://www.w3.org/2000/svg" width="14,34" Höhe="14,34" viewBox="0 0 14.34 14.34"> <path id="ic_near_me_24px" d="M17.34,3,3,9V9.78l5.449,2.111,2.1,5.449h.781Z" transform="translate(-3 -3)" fill="currentColor"/> </svg> </button> </form> </div> </div> </div> </div> </Abschnitt> <!-- Newsletter-Bereich beenden --> </main> <?php include "includes/footer.php" <p>Ich habe versucht, diese beiden Zeilen auszukommentieren: </p> <pre class="brush:php;toolbar:false;">use PHPMailerPHPMailerSMTP; verwenden Sie PHPMailerPHPMailerException;</pre> <p>Es scheint keine Verbindung zu SMTP möglich zu sein, aber ich verwende dieselbe SMTP-Konfiguration, um E-Mails von contact.php zu senden, und es funktioniert. </p> <p><strong>PS: </strong>Es ist erwähnenswert, dass ich lokal denselben Code verwende und es funktioniert. Daher besteht das Problem nur online. </p> <p>Ich verwende die gleiche PHP-Version 8.2 sowohl für lokale als auch für Online-Anwendungen. </p>
P粉128563140P粉128563140386 Tage vor501

Antworte allen(1)Ich werde antworten

  • P粉094351878

    P粉0943518782023-09-01 09:13:56

    我已经整理好了。 实际上,forgot.php 第 60 行有一个拼写错误。

    出于某种原因,我写了单引号。 所以,我替换了这个:

    $mail->SMTPSecure = 'PHPMailer::ENCRYPTION_SMTPS';

    通过这个:

    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;

    现在,它可以工作了,我可以发送电子邮件来重置密码。

    Antwort
    0
  • StornierenAntwort