PHP 치명적인 오류: 포착되지 않은 PHPMailer\PHPMailer\Exception: SMTP 오류: SMTP 호스트에 연결할 수 없습니다.
P粉128563140
2023-08-31 10:04:24
<p>PHPMailer의 비밀번호 찾기 기능을 사용하려고 했으나 다음 오류가 발생했습니다.</p>
<pre class="brush:php;toolbar:false;">[12-May-2023 17:53:32 UTC] PHP 치명적인 오류: 포착되지 않음 PHPMailerPHPMailerException: SMTP 오류: /home에서 SMTP 호스트에 연결할 수 없습니다. /raso1970/cliquedigitalepdo.com4muz.com/vendor/phpmailer/phpmailer/src/PHPMailer.php:2233
스택 추적:
#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 {메인}
/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');
error_reporting(E_ALL);
PHPMailerPHPMailerPHPMailer를 사용하세요.
PHPMailerPHPMailerSMTP를 사용하십시오.
PHPMailerPHPMailerException을 사용하십시오.
?>
<?php ob_start() ?>
<?php에는 "config/db.php"가 포함됩니다. ?>
<?php include "includes/header.php"
<!-- 로그인 -->
Host = 구성::SMTP_HOST;
$mail->사용자 이름 = 구성::SMTP_USER;
$mail->비밀번호 = 구성::SMTP_PASSWORD;
$mail->포트 = 구성::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 réinitialiser 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 = 사실;
} 또 다른 {
에코 "보내지 않음";
}
}
}
}
}?>
<메인 클래스="main__content_wrapper">
<!-- 탐색경로 섹션 시작 -->
<섹션 클래스="breadcrumb__section breadcrumb__bg">
<div class="컨테이너">
<div class="row row-cols-1">
<div 클래스="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">
</섹션>
<!-- 탐색경로 섹션 끝 -->
<!-- 로그인 섹션 시작 -->
<div class="login__section 섹션--padding">
<?php if(!isset($emailSent)): ?>
<div class="컨테이너">
<양식 방법="게시물">
<div class="login__section--inner">
<div class="행 row-cols-md-1 row-cols-1">
<div 클래스="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">Entrez votre 주소 이메일</p>
</div>
<div class="account__login--inner">
<라벨>
<입력 이름="이메일" class="account__login--input" placeholder="주소 이메일" type="이메일">
</라벨>
<버튼 클래스="account__login--btn Primary__btn" 이름="로그인" type="submit">Envoyer
</div>
</div>
</div>
</div>
</div>
</양식>
</div>
<?php 다른: ?>
<h4>Veuillez Vérifier Votre Boîte Mail</h4>
<?php endIf; ?>
</div>
<!-- 로그인 섹션 끝 -->
<!-- 뉴스레터 섹션 시작 -->
<section class="newsletter__section newsletter__bg2 section--padding">
<div class="컨테이너">
<div class="행 row-cols-md-2 row-cols-1 정렬 항목-센터">
<div 클래스="col">
<div class="newsletter__content">
<h2 class="newsletter__content--title text-white">Rejoignez Notre 뉴스레터</h2>
<p class="newsletter__content--desc text-white">Devenez les premiers à découvrez는 실제 제품을 홍보합니다.
친척 au monde du digital et les nouvelles tentances</p>
</div>
</div>
<div 클래스="col">
<div class="newsletter__subscribe">
<form class="newsletter__subscribe position__relative" action="#">
<라벨>
<input class="newsletter__subscribe--input" placeholder="Entrez votre 주소 이메일" type="이메일">
</라벨>
<버튼 클래스="newsletter__subscribe--버튼 스타일2 기본__btn" type="submit">S'inscrire
<svg class="newsletter__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>다음 두 줄을 주석 처리해 보았습니다. </p>
<pre class="brush:php;toolbar:false;">phpMailerPHPMailerSMTP를 사용하세요.
PHPMailerPHPMailerException;</pre>을 사용하세요.
<p>SMTP에 연결할 수 없는 것 같지만 동일한 SMTP 구성을 사용하여 contact.php에서 이메일을 보내고 있는데 작동합니다. </p>
<p><strong>PS: </strong>동일한 코드를 로컬에서 사용하고 있으며 작동한다는 점은 주목할 가치가 있습니다.
따라서 문제는 온라인에서만 존재합니다. </p>
<p>저는 로컬과 온라인 애플리케이션 모두에 동일한 PHP 버전 8.2를 사용합니다. </p>
정리했습니다. 실제로
forgot.php
60행에 오타가 있습니다.어떤 이유에서인지 작은따옴표를 썼습니다. 그래서 이것을 교체했습니다:
으아악이것을 통해:
으아악이제 작동하며 이메일을 보내 비밀번호를 재설정할 수 있습니다.