@Gor321

Не приходят данные с форм на почту?

Здравствуйте! Подскажите пожалуйста, как быть.
Делаю формы обратной связи на сайте, используя uniMail ( https://webdesign-master.ru/blog/tools/578.html ).
Сначала все шло хорошо, данные с форм падали на почту, но в какой то момент перестали работать все формы. В чем причина не могу понять, то ли ошибки в коде, то ли что то не от меня зависящее.
Подсказали, что добавить и как переделать, чтобы выявить проблему. Выбивается ошибка 500
Подскажите, как быть, что делать?
script.js
$("form").submit(function() { //Change
		var th = $(this);
		$.ajax({
			type: "POST",
			url: "../js/mail.php", //Change
			data: th.serialize()
		}).done(function() {
			console.log(data);
			setTimeout(function() {
				// Done Functions
				th.trigger("reset");
			}, 1000);
		});
		return false;
	});

----------------------------------
mail.php
foreach($_REQUEST as $key => $value){ $str .= $key . ' = ' .$value . " \r\n "; } mail('твой почт', 'тест', $str); 

$method = $_SERVER['REQUEST_METHOD'];
//Script Foreach
$c = true;
if (!empty($_REQUEST)) {
 mail('твой почт', 'тест', "first check"); --------------------- 
  $project_name = trim($_REQUEST["project_name"]);
  $admin_email  = trim($_REQUEST["admin_email"]);
  $form_subject = trim($_REQUEST["form_subject"]);
  foreach ( $_REQUEST as $key => $value ) {
    if ( $value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject" ) {
      $message .= "
      " . ( ($c = !$c) ? '<tr>':'<tr style="background-color: #f8f8f8;">' ) . "
        <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td>
        <td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td>
      </tr>
      ";
    }
  }
$message = "<table style='width: 100%;'>$message</table>";
function adopt($text) {
  return '=?UTF-8?B?'.Base64_encode($text).'?=';
}
mail('твой почт', 'тест', "second check");   -----------
$headers = "MIME-Version: 1.0" . PHP_EOL .
"Content-Type: text/html; charset=utf-8" . PHP_EOL .
'From: '.adopt($project_name).' <'.$admin_email.'>' . PHP_EOL .
'Reply-To: '.$admin_email.'' . PHP_EOL;
mail($admin_email, adopt($form_subject), $message, $headers );
?>

-----------------
html
<form class="callback-form">
  <!-- Hidden Required Fields -->
  <input type="hidden" name="project_name" value="сайт">
  <input type="hidden" name="admin_email" value=почта">
  <input type="hidden" name="form_subject" value="ЗАБРОНИРУЙТЕ горящую путевку">
  <!-- END Hidden Required Fields -->
  <span>ЗАБРОНИРУЙТЕ горящую путевку прямо сейчас!</span><br>
    
  <input id="six" class="telephon" type="text" placeholder="+7 " name="Телефон" placeholder="+7" required="required"><br>
            
  <a href="#win9" class="locked btn-hot six"><button type="submit">ЗАБРОНИРОВАТЬ ГОРЯЩУЮ ПУТЕВКУ</button></a>
  <div class="dm-overlay" id="win9">
    <div class="dm-table">
      <div class="dm-cell">
        <div class="dm-modal pop-thanks">
          <a href="#close" class="close"></a>
          <div class="heart"></div>
          <h3>Вам повезло!=)</h3>
          <p>Код брони уже отправлен<br>указанным способом!</p>
        </div>
      </div>
    </div>
  </div>
</form>

5b4f7b72894dd229260698.png
5b4f7b7ac1221625138435.png
  • Вопрос задан
  • 120 просмотров
Пригласить эксперта
Ответы на вопрос 2
customtema
@customtema
arint.ru
Если ошибка 500:
  1. Смотрим HTTP-ответ в консоли браузера
  2. Смотрим лог сайта
  3. Смотрим лог сервера, если до этого этапа не нашли сообщения об ошибках

Найденные сообщения об ошибках копипастим в гугл - находим решение.
Ответ написан
Комментировать
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
uniMail это примитивный скрипт, который использует функцию mail(), а это практически 100% гарантия того что не дойдет. Мало того она в большинстве конфигураций у хостеров отключена, так как является основным источником спама и уязвимостей.
Так что только smtp, например:
https://github.com/swiftmailer/swiftmailer

Ну и 500 ошибка это отдельный случай, но думаю лучше решить вопрос с заменой метода отправки почты, чинить этот не вижу смысла.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
21 нояб. 2024, в 22:21
3000 руб./в час
21 нояб. 2024, в 21:42
100000 руб./за проект
21 нояб. 2024, в 21:30
500 руб./за проект