Доброго дня всем!
Столкнулся с проблемой, что ни в какую не отправляются данные из формы на почту
Пробовал и через mail(), и через PHPMailer, просто не работает
Код html: (пробовал и через action внутри form, и через js)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form>
<input type="text" name="name" id="">
<input type="email" name="mail" id="">
<button type="submit">Press</button>
</form>
<script src="script.js"></script>
</body>
</html>
Код JS:
const form = document.querySelector('form');
form.addEventListener('submit', async (e) => {
e.preventDefault();
let data = new FormData(form);
let response = await fetch('server.php', {
method: 'post',
body: data
})
if (response.ok) {
console.log('good');
}
else {
console.log('Not good');
}
form.reset();
})
Код PHP:
<?php
// mail()
$name = $_POST['name'];
$mail = $_POST['mail'];
$subject = "Заявка!";
$to = "mail@yandex.ru";
$msg="Имя: $name\nПочта:$mail";
mail($to, $subject, $msg, 'Content-type: text/plain; charset=utf-8');
// PHPMailer
require 'phpmailer/PHPMailer.php';
require 'phpmailer/SMTP.php';
require 'phpmailer/Exception.php';
$mail = new PHPMailer\PHPMailer\PHPMailer();
try {
$mail->isSMTP();
$mail->CharSet = "UTF-8";
$mail->SMTPAuth = true;
$mail->Host = "smtp.gmail.com";
$mail->Username = "mail@gmail.com";
$mail->Password = "**********";
$mail->SMTPSecure = "ssl";
$mail->Port = 465;
$mail->setFrom('mail@gmail.com');
$mail->addAddress("newMail@gmail.com");
$mail->Subject = "Subject";
$mail->Body = "Hello!";
$mail->send();
$status = "Good";
} catch (Exception $e) {
$status = "Сообщение не было отправлено. Причина: {$mail->ErrorInfo}";
}
?>
Подскажите, пожалуйста, в чем причина может быть...
Почтовые сервисы разные использовал, yandex, gmail
Пароли тоже SMTP-шные, по крайней мере, у яндекса, у гугла не нашел, где можно поменять