Класс 'PHPMailer \\ PHPMailer \\ Exception' не найден - PullRequest
0 голосов
/ 25 ноября 2018

Использование PHP Mailer версии 6.0.6

Я знаю, что на подобные вопросы есть ответы, но у меня другая ситуация.Я успешно настроил скрипт, он работал отлично;Я получал почту, потом вдруг без каких-либо изменений с моей стороны он начал выдавать мне эту ошибку.

Ошибка

    [Sun Nov 25 21:49:37.852920 2018] [:error] [pid 2060:tid 780] [client ::1:59300] 
   PHP Fatal error:  Uncaught Error: Class 'PHPMailer\\PHPMailer\\Exception' not found in   E:\\TCi\\htdocs\\sdresidency\\website\\plugins\\PHPMailer\\PHPMailer.php:1920\nStack trace:\n#0  E:\\TCi\\htdocs\\sdresidency\\website\\plugins\\PHPMailer\\PHPMailer.php(1774): PHPMailer\\PHPMailer\\PHPMailer->smtpConnect(Array)\n#1   E:\\TCi\\htdocs\\sdresidency\\website\\plugins\\PHPMailer\\PHPMailer.php(1516): PHPMailer\\PHPMailer\\PHPMailer->smtpSend('Date: Sun, 25 N...', 'This is a multi...')\n#2 
E:\\TCi\\htdocs\\sdresidency\\website\\plugins\\PHPMailer\\PHPMailer.php(1352): PHPMailer\\PHPMailer\\PHPMailer->postSend()\n#3  
E:\\TCi\\htdocs\\sdresidency\\website\\newbooking.php(38): PHPMailer\\PHPMailer\\PHPMailer->send()\n#4 {main}\n  thrown in 

Это конфигурация, которую я использую для отправки почты

require_once "plugins/PHPMailer/PHPMailer.php";
        require_once "plugins/PHPMailer/SMTP.php";
        $mail = new PHPMailer\PHPMailer\PHPMailer();
    $mail->IsSMTP(); // enable SMTP



    //Enable SMTP debugging. 
    $mail->SMTPDebug = 0;  // debugging: 1 = errors and messages, 2 = messages only                             
    //Set PHPMailer to use SMTP.
    $mail->IsSMTP(); // enable SMTP          
    //Set SMTP host name                          
    $mail->Host = "md-in-30.webhostbox.net";
    //Set this to true if SMTP host requires authentication to send email
    $mail->SMTPAuth = true;                          
    //Provide username and password     
    $mail->Username = "<my mail id>";                 
    $mail->Password = "<my password>";                           
    //If SMTP requires TLS encryption then set it
    $mail->SMTPSecure = "tls";                           
    //Set TCP port to connect to 
    $mail->Port = 587;                                   

    $mail->From = "<my mail id>";
    $mail->FromName = "SD RESIDENCY";
    $mail->addAddress("<receive mail id>", "name");
    $mail->isHTML(true);
    $mail->Subject = "NEW RESERVATION";
    $mail->Body = $message;
    $mail->AltBody = "No HTML Support";

    if(!$mail->send()) 
    {    $_SESSION['message'] = 'SOME ERROR OCCURED, PLEASE TRY AGAIN';} 
    else 
    {    
        $_SESSION['message'] = 'BOOKING COMPLETED SUCCESSFULLY';
        header("Location: " . $_SERVER["HTTP_REFERER"]);

    }

Я храню содержимое почты в формате html в переменной $ message.Я попробовал все ответы на вопросы здесь, в стеке и на других сайтах, но безуспешно;Любая помощь будет по достоинству оценена

1 Ответ

0 голосов
/ 25 ноября 2018
  1. Попробуйте заменить require_once "plugins/PHPMailer/PHPMailer.php"; на

require_once "./plugins/PHPMailer/PHPMailer.php";

Не включайте библиотеку напрямую.Используйте composer для автозагрузки
  1. Установите Composer https://getcomposer.org/download/
  2. Установите PHP Mailer через Composer.Введите в консоли composer require phpmailer/phpmailer https://packagist.org/packages/phpmailer/phpmailer
  3. Включить автозагрузчик Composer в файл php.require 'vendor/autoload.php';
  4. ПРИБЫЛЬ.Вы можете включать и использовать PHP Mailer и другие библиотеки очень просто
...