При настройке phpmailer в результате получаю ошибку 404. Файл send.php находится в папке библиотеки phpmailer. Подскажите, пожалуйста, где может быть ошибка? код html и php прикладываю
<!doctype html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Демо Bootstrap</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ" crossorigin="anonymous">
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<form enctype="multipart/form-data" method="post" id="form" onsubmit="submitForm(event)" action="send.php">
<p>Имя</p>
<input placeholder="Представьтесь" name="name" type="text" >
<p>Email</p>
<input placeholder="Укажите почту" name="email" type="text" >
<p>Сообщение</p>
<textarea name="text"></textarea>
<p>Прикрепить файлы</p>
<input type="file" name="myfile[]" multiple id="myfile">
<p><input value="Отправить" type="submit"></p>
</form>
<script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ENjdO4Dr2bkBIFxQpeoTz1HIcje39Wm4jDKdf19U8gI4ddQ3GYNS7NTKfAdVQSZe" crossorigin="anonymous"></script>
<script>
async function submitForm(event) {
event.preventDefault(); // отключаем перезагрузку/перенаправление страницы
try {
// Формируем запрос
const response = await fetch(event.target.action, {
method: 'POST',
body: new FormData(event.target)
});
// проверяем, что ответ есть
if (!response.ok) throw (`Ошибка при обращении к серверу: ${response.status}`);
// проверяем, что ответ действительно JSON
const contentType = response.headers.get('content-type');
if (!contentType || !contentType.includes('application/json')) {
throw ('Ошибка обработки. Ответ не JSON');
}
// обрабатываем запрос
const json = await response.json();
if (json.result === "success") {
// в случае успеха
alert(json.info);
} else {
// в случае ошибки
console.log(json);
throw (json.info);
}
} catch (error) { // обработка ошибки
alert(error);
}
}
</script>
</body>
</html>
<?php
// Файлы phpmailer
require 'phpmailer/PHPMailer.php';
require 'phpmailer/SMTP.php';
require 'phpmailer/Exception.php';
# проверка, что ошибки нет
if (!error_get_last()) {
// Переменные, которые отправляет пользователь
$name = $_POST['name'] ;
$email = $_POST['email'];
$text = $_POST['text'];
$file = $_FILES['myfile'];
// Формирование самого письма
$title = "Заголовок письма";
$body = "
<h2>Новое письмо</h2>
<b>Имя:</b> $name<br>
<b>Почта:</b> $email<br><br>
<b>Сообщение:</b><br>$text
";
// Настройки PHPMailer
$mail = new PHPMailer\PHPMailer\PHPMailer();
$mail->isSMTP();
$mail->CharSet = "UTF-8";
$mail->SMTPAuth = true;
//$mail->SMTPDebug = 2;
$mail->Debugoutput = function($str, $level) {$GLOBALS['data']['debug'][] = $str;};
// Настройки вашей почты
$mail->Host = 'smtp.gmail.ru'; // SMTP сервера вашей почты
$mail->Username = 'epetrovskaya11@gmail.com'; // Логин на почте
$mail->Password = 'bmsojhjxqhjtiwhh'; // Пароль на почте
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
$mail->setFrom('epetrovskaya11@gmail.com', 'Name'); // Адрес самой почты и имя отправителя
// Получатель письма
$mail->addAddress('evskaya11@bk.ru');
// $mail->addAddress('poluchatel2@gmail.com'); // Ещё один, если нужен
// Прикрипление файлов к письму
if (!empty($file['name'][0])) {
for ($i = 0; $i < count($file['tmp_name']); $i++) {
if ($file['error'][$i] === 0)
$mail->addAttachment($file['tmp_name'][$i], $file['name'][$i]);
}
}
// Отправка сообщения
$mail->isHTML(true);
$mail->Subject = Это тема письма;
$mail->Body = Это тело письма;
// Проверяем отправленность сообщения
if (!$mail->send()) {
$data['result'] = 'success';
$data['info'] = 'Сообщение успешно отправлено!';
} else {
$data['result'] = 'error';
$data['info'] = 'Сообщение не было отправлено. Ошибка при отправке письма';
$data['desc'] = 'Причина ошибки: {$mail->ErrorInfo}';
}
} else {
$data['result'] = "error";
$data['info'] = "В коде присутствует ошибка";
$data['desc'] = error_get_last();
}
// Отправка результата
header('Content-Type: application/json');
echo json_encode($data);
?>