Задать вопрос
@puppup
Frontend-dev

Как отправлять данные из формы на почту?

Доброго дня всем!
Столкнулся с проблемой, что ни в какую не отправляются данные из формы на почту
Пробовал и через 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-шные, по крайней мере, у яндекса, у гугла не нашел, где можно поменять
  • Вопрос задан
  • 97 просмотров
Подписаться 1 Средний 8 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы