Задать вопрос
@Bro010101

Почему данные из формы не приходят на почту при статусе 200?

Здравствуйте!
Помогите разобраться, почему данные из формы не приходят на почту.
Есть форма, которая исправно работает на одном сайте. По аналогии настроена форма и на другом но тут возникает проблема. В инспекторе кода статус PHP файла 200, но в разделе "предварительный просмотр" файла отправщика почты (sendmail.php) выдается ошибка:


Fatal error: require(): Failed opening required 'phpmailer/src/Exception.php' (include_path='.:/opt/remi/php74/root/usr/share/pear:/opt/remi/php74/root/usr/share/php:/usr/share/pear:/usr/share/php') in /#/#/#/#/public_html/sendmail.php on line 5


При этом, других ошибок в инспекторе кода консоль не выдает.

Помогите разобраться, что может не нравится РНРMailer-у с подключением в файле sendmail.php при том, что с qithub скачен самый крайний релиз плагина и он не изменялся. Подключение в файле обработчика отправки тоже стандартные:

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'phpmailer/src/Exception.php';
require 'phpmailer/src/PHPMailer.php';

$mail = new PHPMailer(true);
$mail->CharSet = 'UTF-8';
$mail->setLanguage('ru', 'phpmailer/language/');
$mail->IsHTML(true);

// От кого письмо
$mail->setFrom('mail@mail.com', 'Письмо из формы на сайте');
// Кому отправить
$mail->addAddress('mail@mail.com');
// Тема письма
$mail->Subject = "Заявка с сайта";


// Тело письма
$body = '<h1>Встречай письмо!</h1>';

if(trim(!empty($_POST['name']))){
    $body.='<p><strong>Имя:</strong> '.$_POST['name'].'</p>';
}
if(trim(!empty($_POST['email']))){
    $body.='<p><strong>E-mail:</strong> '.$_POST['email'].'</p>';
}
if(trim(!empty($_POST['tel']))){
    $body.='<p><strong>Телефон:</strong> '.$_POST['tel'].'</p>';
}
if(trim(!empty($_POST['message']))){
    $body.='<p><strong>Сообщение:</strong> '.$_POST['message'].'</p>';
}


$mail->Body = $body;

// Отправляем
if (!$mail->send()) {
    $message = 'Ошибка';
} else {
    $message = 'Данные отправлены!';
}
?>


На другом сайте используя текущий файл sendmail.php и плагин PHPMailer данные из формы успешно доходят на почту.
Помогите разобраться, никак не пойму в чем может быть дело.
На всякий случай дополнительно укажу код jQuery

submitHandler: function (form) {
      $('.form__body').fadeIn();
      var $form = $(form);
      var $formId = $(form).attr('id');
      switch ($formId) {
        case 'form__site':
          $.ajax({
            type: 'POST',
            url: $form.attr('action'),
            data: $form.serialize()
          })

          .done(function() {
            console.log('Success')
          })
          .fail(function() {
            console.log('Fail')
          })
            .always(function() {
              console.log('Always');
              setTimeout(function() {
                $('.answer').fadeIn();
                $form.trigger('reset');
                //строка для отслеживания целей в Яндекс метрике.

              }, 1100);
              setTimeout(function () {
                $('.answer').fadeOut();

              }, 5000);
            });
          break;
          case 'form__adverti':
          $.ajax({
            type: 'POST',
            url: $form.attr('action'),
            data: $form.serialize()
          })

          .done(function() {
            console.log('Success')
          })
          .fail(function() {
            console.log('Fail')
          })
            .always(function() {
              console.log('Always');
              setTimeout(function() {
                $('.answer').fadeIn();
                $form.trigger('reset');
                //строка для отслеживания целей в Яндекс метрике.

              }, 1100);
              setTimeout(function () {
                $('.answer').fadeOut();

              }, 5000);
            });
          break;
      }
      return false;
    }
  });
}
$('.form__body').each(function () {
  valEl($(this));
});
});
  • Вопрос задан
  • 98 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы