PHP 致命的エラー: キャッチされない PHPMailer\PHPMailer\Exception: SMTP エラー: SMTP ホストに接続できません
P粉128563140
P粉128563140 2023-08-31 10:04:24
0
1
586
<p>PHPMailer でパスワードを忘れた場合の機能を使用しようとしましたが、次のエラーが発生しました: </p> <pre class="brush:php;toolbar:false;">[12-May-2023 17:53:32 UTC] PHP 致命的エラー: キャッチされない PHPMailer\PHPMailer\Exception: SMTP エラー: SMTP ホストに接続できませんでした. /home/raso1970/cliquedigitalepdo.com4muz.com/vendor/phpmailer/phpmailer/src/PHPMailer.php:2233 にあります。 スタックトレース: #0 /home/raso1970/cliquedigitalepdo.com4muz.com/vendor/phpmailer/phpmailer/src/PHPMailer.php(2019): PHPMailer\PHPMailer\PHPMailer->smtpConnect() #1 /home/raso1970/cliquedigitalepdo.com4muz.com/vendor/phpmailer/phpmailer/src/PHPMailer.php(1678): PHPMailer\PHPMailer\PHPMailer->smtpSend() #2 /home/raso1970/cliquedigitalepdo.com4muz.com/vendor/phpmailer/phpmailer/src/PHPMailer.php(1516): PHPMailer\PHPMailer\PHPMailer->postSend() #3 /home/raso1970/cliquedigitalepdo.com4muz.com/forgot.php(75): PHPMailer\PHPMailer\PHPMailer->send() #4 {メイン} /home/raso1970/cliquedigitalepdo.com4muz.com/vendor/phpmailer/phpmailer/src/PHPMailer.php の 2233 行目</pre> にスローされます。 <p>これは、forget.php の私のコードです。 </p> <pre class="brush:php;toolbar:false;"><?php ini_set('display_errors', '1'); ini_set('display_startup_errors', '1'); エラー報告(E_ALL); PHPMailer\PHPMailer\PHPMailer を使用します。 PHPMailer\PHPMailer\SMTP を使用します。 PHPMailer\PHPMailer\Exception を使用します。 ?> <?php ob_start(); ?> <?php include "config/db.php"; ?> <?php include "includes/header.php"; ?> <!-- ログイン --> <?php './vendor/autoload.php' が必要です。 if(!isset($_GET['忘れた'])) { リダイレクト('https://cliquedigitalepdo.com4muz.com/'); }if(IfItIsMethod('post')) { if(isset($_POST['email'])) { $email = $_POST['email']; $length = 50; $token = bin2hex(openssl_random_pseudo_bytes($length)); if(email_exists($email)) { if($stmt = $connection->prepare("UPDATE users SET token = :token WHERE user_email = :email")) { $stmt->bindValue(':token', $token); $stmt->bindValue(':email', $email); $stmt->execute([ 'トークン' => $トークン、 '電子メール' => $メール ]); // $stmt->close(); /*** * * PHPMailer の設定 * **/ $mail = 新しい PHPMailer(true); $mail->isSMTP(); $mail->ホスト = Config::SMTP_HOST; $mail->ユーザー名 = Config::SMTP_USER; $mail->パスワード = Config::SMTP_PASSWORD; $mail->ポート = 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>Cliquez sur le lien pour reinitialiser votre mot de passe <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; } それ以外 { エコー「送信されていません」; } } } } }?> <メインクラス="main__content_wrapper"> <!-- ブレッドクラムセクションの開始 --> <section class="ブレッドクラム__セクションブレッドクラム__bg">
<div class="行行-列-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="ブレッドクラム__section--shape--bg" src="https://cliquedigitalepdo.com4muz.com/assets/img/other/breadcrumb-shape-bg.webp" alt="パンくずリスト-img"> </セクション> <!-- ブレッドクラムセクションの終了 --> <!-- ログインセクションの開始 --> <div class="login__section セクション --padding"> <?php if(!isset($emailSent)): ?>
<フォームメソッド="ポスト"> <div class="login__section--inner"" <div class="行行-列-md-1行-列-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">メールアドレスの入力</p> </div> <div class="account__login--inner"" <ラベル> <入力名="メール" class="account__login--input" placeholder="メールアドレス" type="メール"> </ラベル> <ボタンクラス="account__login--btnprimary__btn"名前=「ログイン」 type="送信">招待者</button> </div> </div> </div> </div> </div> </フォーム> </div> <?php else: ?> <h4>Veuillez Vérifier Votre Boîte Mail</h4> <?php endIf; ?> </div> <!-- ログインセクションを終了 --> <!-- ニュースレターセクションを開始 --> <section class="ニュースレター__section ニュースレター__bg2 セクション--パディング">
<div class="行 row-cols-md-2 row-cols-1 align-items-center"> <div class="col"> <div class="ニュースレター__コンテンツ"> <h2 class="newsletter__content--title text-white">Rejoignez Notre ニュースレター</h2> <p class="newsletter__content--desc text-white">Devenez les premiers à découvrez toutes nosactualités デジタルとヌーベルの関係性</p> </div> </div> <div class="col"> <div class="ニュースレター__subscribe"> <form class="ニュースレター__購読位置__相対"アクション="#"> <ラベル> <input class="newsletter__subscribe--input" placeholder=「Entrez votre adresse email」 type="メール"> </ラベル> <button class="newsletter__subscribe--button style2 Primary__btn" type="submit">記入してください <svg class="ニュースレター__subscribe--button__icon" xmlns="http://www.w3.org/2000/svg"幅= "14.34"高さ= "14.34" viewBox="0 0 14.34 14.34""> <パスid="ic_near_me_24px" d=「M17.34,3,3,9V9.78l5.449,2.111,2.1,5.449h.781Z」変換=「変換(-3 -3)」 fill="currentColor"/> </svg> </ボタン> </フォーム> </div> </div> </div> </div> </セクション> <!-- ニュースレターセクションを終了 --> </メイン> <?php include "includes/footer.php" ?></pre> <p>次の 2 行をコメントアウトしてみました。</p> <pre class="brush:php;toolbar:false;">PHPMailer\PHPMailer\SMTP を使用します。 PHPMailer\PHPMailer\Exception;</pre> を使用します。 <p>SMTP に接続できないようですが、同じ SMTP 設定を使用して contact.php からメールを送信しており、正常に動作しています。 </p> <p><strong>追記: </strong>同じコードをローカルで使用しており、動作することは注目に値します。 したがって、問題はオンラインのみに存在します。 </p> <p>ローカル アプリケーションとオンライン アプリケーションの両方に同じ PHP バージョン 8.2 を使用しています。 </p>
P粉128563140
P粉128563140

全員に返信(1)
P粉094351878

整理しました。 実際には、forgot.php の 60 行目にタイプミスがあります。

なぜかシングルクォートで書いてしまいました。 そこで、これを置き換えました:

リーリー ###これを通して:### リーリー

これで動作し、パスワードをリセットするための電子メールを送信できるようになりました。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート