Что означает ошибка при отправке почты и как ее исправить?

В первые сталкиваюсь с php и не понимаю что означает данная ошибка.

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 отправки (события из библиотеки bouncer)

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

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

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

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

  $mail->setFrom('info@chipdip33.ru', 'Чип и Дип');
  $mail->addAddress('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);

  ?>



При сабмите вылезает ошибка 500, логи сервера:
chipdip33.ru [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/
  • Вопрос задан
  • 99 просмотров
Решения вопроса 1
sHinE
@sHinE
веб-разработчик, php/js/mysql и сопутствующее
ddecode.com/hexdecoder/?results=2f4f0179471d76df04... - вот сюда загоняете
\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
и узнаёте, что у вас пустое сообщение (видимо установка языка еще и ошибки phpMailer'а переводит).
Судя по коду, тело сообщения вы сформировали в $body, но надо ещё это тело передать в $mail. Наверно там есть какой-нибудь метод типа $mail->setBody($body);
Ну и до кучи можно в try-catch отправку обернуть, чтобы исключения перехватывать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
24 апр. 2024, в 09:14
5000 руб./за проект
24 апр. 2024, в 09:13
2000 руб./в час