@Lirrr
Учусь вебу

Почему возникает ошибка при отправке формы на почту?

Пытаюсь настроить отправку формы на почту при сабмите. С php сталкиваюсь впервые, как и с fetch, но вот что получается: (использую библиотеку bouncer.js):

html:

<form class="form" method="POST" action="mail.php">
                    <ul class="form__list">
                      <li class="form__item">
                        <label class="form__label" for="name">Имя</label>
                        <input class="form__field" type="text" name="name" id="name" placeholder="Введите имя" required>
                      </li>
                      <li class="form__item">
                        <label class="form__label" for="tel">Номер телефона</label>
                        <input class="form__field" type="tel" name="tel" id="tel" placeholder="+7 (___) ___-__-__" required>
                      </li>
                    </ul>
                    <button class="form__btn btn" type="submit" name="form-submit">Отправить</button>
                  </form>



js (fetch)

form.addEventListener('bouncerFormValid', formSend);

  async function formSend(e) {
    let formData = new FormData(form);

    let response = await fetch('mail.php', {
      method: ('POST'),
      body: FormData,
    });

    if (response.ok) {
      let result = await response.json();
      alert(result.message);
      form.reset();
    } else {
      alert('Упс, что-то пошло не так');
    }

  };



php (phpmailer):

<?php
  use PHPMailer\PHPMailer\PHPMailer;
  use PHPMailer\PHPMailer\Exception;

  require 'phpmailer/src/Exception.php';
  require 'phpmailer/src/PHPMailer.php';

  $mail = new PHPMailer(true);
  $mail->CharSet = 'UTF-8';
  $mail->setLanguage('ru', 'phpmailer/language/');
  $mail->IsHTML(true);

  $mail->setFrom('info@chipdip33.ru', 'Чип и Дип');
  $mail->addAdress('milan7457@yandex.ru');
  $mail->Subject = 'Привет';

  $body = '<h1>Тело письма</h1>';

  if(trim(!empty($_POST['name']))){
    $body.='<p><strong>Имя</strong> '.$_POST['name'].'</p>';
  }
  if(trim(!empty($_POST['tel']))){
    $body.='<p><strong>Имя</strong> '.$_POST['tel'].'</p>';
  }

  if(!$mail->send()) {
    $message = 'Ошибка';
  } else {
    $message = 'Данные отправлены';
  }

  $response = ['message' => $message];
  header('Content-type: application.json');
  echo json_encode($response);

  ?>



Ошибка и логи сервера

5fe9bef8093c9137519422.jpeg
5fe9c7cf8bbf6317549065.jpeg


файл mail.php находится на одном уровне с index.html. В качестве отправителя письма указана доменная почта сайта. Сайт лежит на хостинге без всяких cms. Никакой настройки почты на хостинге я не делал , только создал, да и без понятия нужна ли какая настройка. все делаю впервые. Буду рад любой помощи, спасибо.

UPD 1. Добавил логи из девтулз в спойлер с ошибкой.
UPD 2. Логи сервера с ошибкой
здесь
[Mon Dec 28 23:07:21 2020] [php7:error] [pid 168688] [client 95.106.199.138:0] PHP Fatal error: Uncaught PHPMailer\\PHPMailer\\Exception: \xd0\x9f\xd1\x83\xd1\x81\xd1\x82\xd0\xbe\xd0\xb5 \xd1\x81\xd0\xbe\xd0\xbe\xd0\xb1\xd1\x89\xd0\xb5\xd0\xbd\xd0\xb8\xd0\xb5 in /home/m/milan7457y/public_html/resources/phpmailer/src/PHPMailer.php:1535\nStack trace:\n#0 /home/m/milan7457y/public_html/resources/phpmailer/src/PHPMailer.php(1438): PHPMailer\\PHPMailer\\PHPMailer->preSend()\n#1 /home/m/milan7457y/public_html/mail.php(26): PHPMailer\\PHPMailer\\PHPMailer->send()\n#2 {main}\n thrown in /home/m/milan7457y/public_html/resources/phpmailer/src/PHPMailer.php on line 1535, referer: https://chipdip33.ru/
  • Вопрос задан
  • 126 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы