PHP 致命的エラー: キャッチされない PHPMailer\PHPMailer\Exception: SMTP エラー: SMTP ホストに接続できません
<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>
全員に返信(1)返信します
P粉0943518782023-09-01 09:13:56
整理しました。
実際には、forgot.php
の 60 行目にタイプミスがあります。
なぜかシングルクォートで書いてしまいました。
そこで、これを置き換えました:
リーリー
###これを通して:###
リーリー
これで動作し、パスワードをリセットするための電子メールを送信できるようになりました。
返事
0 キャンセル返事