Search code examples
phpphpmailer

Uncaught Error: Class 'PHPMailer\PHPMailer\Exception' not found in C


I am unable to receive confirmation emails because of the error. Here is my PhpMailer error on the line.

Fatal error: Uncaught Error: Class 'PHPMailer\PHPMailer\Exception' not found in C:\xampp\htdocs\Web\PHPMailer\PHPMailer.php:1703 Stack trace: #0 C:\xampp\htdocs\Web\PHPMailer\PHPMailer.php(1515): PHPMailer\PHPMailer\PHPMailer->mailSend('Date: Wed, 25 J...', '\r\n ...') #1 C:\xampp\htdocs\pificy\PHPMailer\PHPMailer.php(1352): PHPMailer\PHPMailer\PHPMailer->postSend() #2 C:\xampp\htdocs\Web\1r.php(43): PHPMailer\PHPMailer\PHPMailer->send() #3 {main} thrown in C:\xampp\htdocs\pificy\PHPMailer\PHPMailer.php on line 1703.

Below is the line that I'm getting the error on. What should I do?

if (!$result) {
throw new Exception($this->lang('instantiate'), self::STOP_CRITICAL);
    }

To be more specific this is my code for the register file:

<?php
$msg = "";
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

if (isset($_POST['submit'])) {
    $con = new mysqli('localhost', 'Owner', '', 'Pificy');

$username = $con->real_escape_string($_POST['username']);
$email = $con->real_escape_string($_POST['email']);
$password = $con->real_escape_string($_POST['password']);
$cPassword = $con->real_escape_string($_POST['cPassword']);

if ($username == "" || $email == "" || $password != $cPassword)
        $msg = "Please check your inputs!";
else {
$sql = $con->query("SELECT id FROM users WHERE email='$email'");
if ($sql->num_rows > 0) {
$msg = "Email already exists in the database!";
} else {
$token 'qwertzuiopasdfghjklyxcvbnmQWERTZUIOPASDFGHJKLYXCVBNM0123456789!$/()*';
$token = str_shuffle($token);
$token = substr($token, 0, 10);

$hashedPassword = password_hash($password, PASSWORD_BCRYPT);

$con->query("INSERT INTO users (username,email,password,isEmailConfirmed,token)
VALUES ('$username', '$email', '$hashedPassword', '0', '$token');
            ");

include_once "PHPMailer/PHPMailer.php";

$mail = new PHPMailer();
$mail->setFrom('[email protected]');
$mail->addAddress($email, $username);
$mail->Subject = "Please verify email!";
$mail->isHTML(true);
$mail->Body = "
Please click on the link below:<br><br>

<a href='http://Upcoming.com/Upcoming/confirm.php?email=$email&token=$token'>Click Here</a>
            ";

if ($mail->send())
$msg = "You have been registered! Please verify your email!";
            else
$msg = "Something wrong happened! Please try again!";
}
}
}
?>

Solution

  • Just like you included:

    include_once "PHPMailer/PHPMailer.php";
    

    You need to include Exception.php as well:

    include_once "PHPMailer/Exception.php";