*разобрался, не тратьте время
Использовал fetch-запрос + phpMailer. Сам запрос уходит хорошо, статус 200, приходит тоже на мою почту. Но почему то саму инфу с полей формы не присылает(48стр в js), только то, что я записал непосредственно через formData.set(). Знаю только JS, с PHP вообще не знаком. Мне кажется что-то поменять надо в php-файле, но я опять же, не могу знать что. Буду благодарен, если подскажете, в чём дело
document.addEventListener('DOMContentLoaded', function () {
function validation() {}// возвращает true/false, делает валидацию полей
async function postSend(e) {
e.preventDefault()
let formData = new FormData(this)
formData.set('Имя разработчика:', 'Данила')
if (validation()) {
let response = await fetch('mailer.php', {
method: 'POST',
body: formData
})
if (response.ok) {
formOverlay.classList.add('active-form')
return await response.json()
} else {
alert('Ошибка на сервере!')
this.reset()
}
}
}
let formOverlay = document.querySelector('.form-done')
let allForms = document.querySelectorAll('form')
allForms.forEach((form) => {
form.addEventListener('submit', postSend)
})
})
<?php
// Файлы phpmailer
require 'phpMailer/PHPMailer.php';
require 'phpMailer/SMTP.php';
require 'phpMailer/Exception.php';
$title = "Тема письма";
$file = $_FILES['file'];
$c = true;
// Формирование самого письма
$title = "Заголовок письма";
foreach ( $_POST as $key => $value ) {
if ( $value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject" ) {
$body .= "
" . ( ($c = !$c) ? '<tr>':'<tr style="background-color: #f8f8f8;">' ) . "
<td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td>
<td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td>
</tr>
";
}
}
$body = "<table style='width: 100%;'>$body</table>";
// Настройки PHPMailer
$mail = new PHPMailer\PHPMailer\PHPMailer();
try {
$mail->isSMTP();
$mail->CharSet = "UTF-8";
$mail->SMTPAuth = true;
// Настройки вашей почты
$mail->Host = 'smtp.gmail.com'; // SMTP сервера вашей почты
$mail->Username = 'idemvpered76@gmail.com'; // Логин на почте
$mail->Password = 'работающийпароль(скрыл)'; // Пароль на почте
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
$mail->setFrom('Заявка с вашего сайта'); // Адрес самой почты и имя отправителя
// Получатель письма
$mail->addAddress('idemvpered76@gmail.com');
// Отправка сообщения
$mail->isHTML(true);
$mail->Subject = $title;
$mail->Body = $body;
$mail->send();
} catch (Exception $e) {
$status = "Сообщение не было отправлено. Причина ошибки: {$mail->ErrorInfo}";
}