Здравствуйте!
Помогите разобраться, почему данные из формы не приходят на почту.
Есть форма, которая исправно работает на одном сайте. По аналогии настроена форма и на другом но тут возникает проблема. В инспекторе кода статус 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));
});
});