@AlShest

Почему php mail() не отправляет почту?

Пытался добавить на сайт форму обратной связи по образцу, но письма не отправляются. Не могу найти ошибку.
В консоли ошибки не выводятся.

<form class="mx-auto align-middle text-center form-white" method="post" >
       				  <div class="form-group">
       				    <input class="form-control" type="text" placeholder="Ваше имя" id="name"
       				    pattern="[a-zA-Zа-яА-Я]+" 
       				    minlength="3" 
       				    maxlength="10"
						      required
       				    >
       				  </div>
       				  <div class="form-group">
       				    <input type="tel" class="form-control" id="tel" placeholder="Ваш телефон"
       				     pattern="^\+?[\s\-\(\)0-9]{7,19}$"
       				     required
       				    >
       				  </div>
       				  <div class="form-group">
       				    <input type="email" class="form-control" id="email" aria-describedby="emailHelp" placeholder="Ваш e-mail"
       				    pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$"
						      required
       				    >
       				  </div>
       				  <button type="submit" class="btn btn-primary" id="btn_submit">ОСТАВИТЬ ЗАЯВКУ</button>
                 <div id="erconts"></div>
              </form>


$(document).ready(function () {
    $('#btn_submit').click(function(){
      // собираем данные с формы
      var user_name    = $('#name').val();
      var user_email   = $('#email').val();
      var user_phone = $('#phone').val();
      // отправляем данные
      $.ajax({
          url: "send.php", // куда отправляем
          type: "post", // метод передачи
          data: { // что отправляем
              "name":    user_name,
              "email":   user_email,
              "phone":   user_phone,
          },
          error:function(){$("#erconts").html("Произошла ошибка!");},                
          // beforeSend: function() {                     
          //     $("#erconts").html("Отправляем данные...");                   
          // },                 
          success: function(result){                                          
              $('#erconts').html(result);                     
              console.log("ntcn");                 
          }  
      });
  });
});


<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (isset($_POST['name'])) {$name = $_POST['name'];}
    if (isset($_POST['phone'])) {$phone = $_POST['phone'];}
    if (isset($_POST['email'])) {$formData = $_POST['email'];}


 /* Адрес, куда отправляем письма*/
    $to = "test@test.ru";
    $subject = "Письмо с обратной связи"; 
    $headers .= "Content-type: text/html; charset=utf-8\r\n";
    $headers = "From: test@yandex.ru";
    $message .= "Имя пользователя: ".$name."\n";
    $message .= "Почта: ".$email."\n";
    $message .= "Телефон: ".$phone."\n";

    $send = mail($to, $subject, $message, $headers);
    /*ЕСЛИ ПИСЬМО ОТПРАВЛЕНО УСПЕШНО ВЫВОДИМ СООБЩЕНИЕ*/
    if ($send == "true")
    {
        echo "Ваше сообщение отправлено. Мы ответим вам в ближайшее время.\r\n";
    }
    /*ЕСЛИ ПИСЬМО НЕ УДАЛОСЬ ОТПРАВИТЬ ВЫВОДИМ СООБЩЕНИЕ ОБ ОШИБКЕ*/
    else
    {
        echo "Не удалось отправить, попробуйте снова!";
    }
}
else {
    http_response_code(403);
    echo "Попробуйте еще раз";
}
?>


И какими методами сейчас лучше всего реализовывать отправку писем с сайта?

upd. С кодом все в порядке>, я не догадался заглянуть в папку спам.
  • Вопрос задан
  • 143 просмотра
Пригласить эксперта
Ответы на вопрос 1
ifbest
@ifbest
PHP Developer
Проверьте AJAX, PHP скрипт работает корректно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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