@Web__Nikita03

Почему не отправляется письмо?

Не отправляется письмо из формы , хотя js срабатывает и выводит модальное окно . Как исправить ?
<form action="mail.php" method="POST" id="form">
                <input type="text" name="text" class="input" placeholder="Имя">
                <input type="tel" name="tel" class="input" placeholder="Телефон">
              <input type="submit" value="Позвонить мне" name="btn" class="btn  btn-form">
           </form>


$('form').submit(function(event) {
    event.preventDefault();
    $.ajax({
      type: $(this).attr('method'),
      url: $(this).attr('action'),
      data: new FormData(this),
      contentType: false,
      cache: false,
      processData: false,
      success: function(result) {
       new Messi('Ваша заявка принята в обработку', {title: 'Успешно'}
      },
    });
  });


<?php 
if (!empty($_POST['name']) AND !empty($_POST['tel'])){
  
  $headers = 'Заявка от  клиента'.
             
  $theme = 'GeoFox';

  $letter = 'Данные сообщения:\r\n';
  $letter .='Имя: '.$_POST['name'].'\r\n';
  $letter .='Телефон: '.$_POST['tel'].'\r\n';
  
  if (mail('info@sitename,ru', $theme, $letter, $headers)){
    // echo "<script>
    //   $('#exampleModal1').arcticmodal();
    // </script>";
  } else {
    echo "Ошибка при отправке!";
  }
} else {
  echo "Ошибка: Заполните все поля!";
}


А если без js отправлять , то перенаправляет на mail.php а там Ошибка: Заполните РІСЃРµ поля!
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ответы на вопрос 1
@choupa
Архитектор (обычный, который строит)
Ваш JS-код:
success: function(result) {
       new Messi('Ваша заявка принята в обработку', {title: 'Успешно'}
      }

выводит сообщение, когда на сервер всего лишь успешно передан запрос на отправку. Это вовсе не означает удачную отправку. Это значит только то, что скрипт запустился, но с неизвестным результатом.

Ваше сообщение, которое вы выводите в echo приходит в переменной result. Вот и посмотрите что там — выведите её в Messi, например в заголовке:
new Messi( 'Ваша заявка принята в обработку', {title: result} );

И тогда уж добавьте в случае успешной отправки
echo "Успешно!";

У аж почему письмо не отправляется — это отдельный вопрос. По крайней мере вы получите на экране вывод из PHP, чтобы уже разбираться, что к чему.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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