Задача: отправить данные с формы на почту.
Пробовал отправить с помощью PHPMailer, но так как я PHP не знаю не получилось. Если кто-то умеет оправлять такие запросы предложите как это сделать иначе используя примерно такой же JS, или подскажите в чём ошибка в этом коде.
JS:
const modalOverlay = document.querySelector('.modal-overlay')
const nameInp = document.querySelector('#name-inp')
const phoneInp = document.querySelector('#phone-inp')
const subSend = document.querySelector('.modal #sub-send')
const closeBtn = document.querySelector('.modal .close')
function modalOpen() {
modalOverlay.classList.add('open')
}
function modalHide() {
modalOverlay.classList.remove('open')
}
setTimeout(modalOpen, 1000)
closeBtn.addEventListener('click', () => {
modalHide()
})
modalOverlay.addEventListener('click', () => {
modalHide
})
document.addEventListener('DOMContentLoaded', function () {
// subSend.addEventListener('click', e => {
const form = document.getElementById('form')
console.log(form)
form.addEventListener('submit', formSend)
// if (phoneInp.value[0] === '+' || phoneInp.value[0] === '8' && phoneInp.value.length > 7 && nameInp.value.length > 3){ }
// else {
// alert('введите корректные данные')
// modalOpen()
// }
// console.log(nameInp.value, phoneInp.value)
async function formSend(e) {
console.log('work')
e.preventDefault()
let formData = new FormData(form)
console.log(formData)
let response = await fetch('sendmail.php', {
method: 'POST',
body: formData
})
if (response.ok) {
let result = await response.json();
alert(result.message);
form.reset();
alert('Заявка успешно оставлена!')
modalHide()
}
else alert('Error')
}
})
PHP:
<?php
use PHPMailer\PHPMailer\PHPMailer;
// use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require 'phpmailer/src/Exception.php';
require 'phpmailer/src/PHPMailer.php';
$mail = new PHPMailer(true);
// $mail->SMTPDebug = SMTP::DEBUG_SERVER;
// $mail->isSMTP();
$mail->CharSet = 'UTF-8';
$mail->setLanguage('ru', 'phpmailer/language/');
$mail->IsHTML(true);
$mail->setFrom('romuel4ik@gmail.com', 'Роман Бачище');
$mail->addAddress('baroman4i@mail.ru', 'Роман Бачище');
// $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
// $mail->Port = 465;
$mail->Subject = 'Привет! Это твоё первое сообщение';
$body = '<h1>First Message</h1>';
$body.='<p>Имя:'.$_POST['name'].'</p>';
$body.='<p>Номер:'.$_POST['phone'].'</p>';
$mail->Body = $body;
if (!$mail->Send()) {
$message = 'Error';
} else {
$message = 'Данные отправлены!';
}
$response = ['Message' => $message];
header('Content-type: application/json');
echo json_encode($response);
?>