Не могу найти ошибку почему не приходят письма?

Ссылка скопирована
2 февраля 2026 1 ответ

Вот форма

<section class="screen-2"> 	<div class="container"> 		<div class="screen-2__row">   			<div class="screen-2__form form" style="display:flex;"> 				<span class="screen-2__title">  					Заказать консультацию  				</span>   				<form class="form__top" action="" id="form__top"> 					<div class="form__top"> 						<div class="form__input"> 							<div class="form__input__box"> 								<input type="text" name="name" placeholder="Ваше имя*" id="feedback_form_name3"> 								<input type="text" name="phone" placeholder="Телефон*" id="feedback_form_phone3"> 								<input type="hidden" id="feedback_form_url3" value="https://<?= $_SERVER['SERVER_NAME'] ?><?= $APPLICATION->GetCurDir() ?>"> 							</div> 							<div class="form__check"> 								<input id="checkboxAgree" type="checkbox" name="personal" checked> 								<label class="form-check__label" id="" for="checkboxAgree"> 									Нажимая кнопку «Отправить», вы принимаете политику 									конфиденциальности компании и даете согласие на обработку персональных 									данных 								</label> 							</div> 						</div> 					</div> 					<div class=""> 						<div class=""> 							<div class=""> 								<div class="alert alert-success text-center" role="alert" id="feedback_form_success3" style="display:none;font-size:13px"> 									Отлично! Ваша заявка успешно отправлена. 								</div> 								<div class="alert alert-danger text-center" role="alert" id="feedback_form_danger3" style="display:none;font-size:13px"> 									Пожалуйста, заполните обязательные поля формы Имя и Телефон 								</div> 							</div>  							<div class="" style="text-align:center;"> 								<!-- <button type="button" class="form_submit btn-statics" data-id="3" >Отправить</button> --> 								<button type="button" id="submitButton" class="submitButton form__btn btn-red__form__btn" data-id="3">ОТПРАВИТЬ</button> 							</div> 						</div> 					</div> 				</form> 			</div> 		</div> 	</div> </section>  вот скрипт что проверяет на валидацию и ajax <code lang="javascript"> $(document).ready(function () { 	 	console.log('Партнеры top') 	 const namet = document.getElementById('feedback_form_name3'); const phonet = document.getElementById('feedback_form_phone3'); const feedbackformurl3 = document.getElementById('feedback_form_url3');  	$(".submitButton").click(function () {         const nameValuet = namet.value;         const phoneValuet = phonet.value;         const feedbackformurl5Value = feedbackformurl3.value; 		// Получение значения checkbox 		var isChecked = $("#checkboxAgree").is(":checked"); 		// Проверка значения checkbox 		if (!isChecked) { 			// Вывод сообщения об ошибке 			alert("Пожалуйста, примите политику конфиденциальности."); 			return; // Прерываем выполнение функции 		}  		if (nameValuet == "" || phoneValuet == "") {  			$("#feedback_form_danger3").css("display", "");  		} 		else {  			$("#feedback_form_danger3").css("display", "none"); 			$("#feedback_form_success3").css("display", "");  			$.ajax({ 				type: "POST", 				url: "/local/components/main/send.form/templates/send.form-newdesignPartners/ajax.php", 				caches: false, 				data: { NAME: nameValuet, PHONE: phoneValuet,}, 				dataType: "html", 				beforeSend: function(){ 					$(".submitButton").prop("disabled", true); 				}, 				success: function(data){ 					if(!data) 					alert("Были ошибки, письмо не отправленно!"); 					else 					$("#form__top").trigger("reset"); 					$(".submitButton").prop("disabled", false); 				}, 			});  		}  	}); });    </code>

<section class="screen-2"> <div class="container"> <div class="screen-2__row"> <div class="screen-2__form form" style="display:flex;"> <span class="screen-2__title"> Заказать консультацию </span> <form class="form__top" action="" id="form__top"> <div class="form__top"> <div class="form__input"> <div class="form__input__box"> <input type="text" name="name" placeholder="Ваше имя*" id="feedback_form_name3"> <input type="text" name="phone" placeholder="Телефон*" id="feedback_form_phone3"> <input type="hidden" id="feedback_form_url3" value="https://<?= $_SERVER['SERVER_NAME'] ?><?= $APPLICATION->GetCurDir() ?>"> </div> <div class="form__check"> <input id="checkboxAgree" type="checkbox" name="personal" checked> <label class="form-check__label" id="" for="checkboxAgree"> Нажимая кнопку «Отправить», вы принимаете политику конфиденциальности компании и даете согласие на обработку персональных данных </label> </div> </div> </div> <div class=""> <div class=""> <div class=""> <div class="alert alert-success text-center" role="alert" id="feedback_form_success3" style="display:none;font-size:13px"> Отлично! Ваша заявка успешно отправлена. </div> <div class="alert alert-danger text-center" role="alert" id="feedback_form_danger3" style="display:none;font-size:13px"> Пожалуйста, заполните обязательные поля формы Имя и Телефон </div> </div> <div class="" style="text-align:center;"> <!-- <button type="button" class="form_submit btn-statics" data-id="3" >Отправить</button> --> <button type="button" id="submitButton" class="submitButton form__btn btn-red__form__btn" data-id="3">ОТПРАВИТЬ</button> </div> </div> </div> </form> </div> </div> </div> </section> вот скрипт что проверяет на валидацию и ajax <code lang="javascript"> $(document).ready(function () { console.log('Партнеры top') const namet = document.getElementById('feedback_form_name3'); const phonet = document.getElementById('feedback_form_phone3'); const feedbackformurl3 = document.getElementById('feedback_form_url3'); $(".submitButton").click(function () { const nameValuet = namet.value; const phoneValuet = phonet.value; const feedbackformurl5Value = feedbackformurl3.value; // Получение значения checkbox var isChecked = $("#checkboxAgree").is(":checked"); // Проверка значения checkbox if (!isChecked) { // Вывод сообщения об ошибке alert("Пожалуйста, примите политику конфиденциальности."); return; // Прерываем выполнение функции } if (nameValuet == "" || phoneValuet == "") { $("#feedback_form_danger3").css("display", ""); } else { $("#feedback_form_danger3").css("display", "none"); $("#feedback_form_success3").css("display", ""); $.ajax({ type: "POST", url: "/local/components/main/send.form/templates/send.form-newdesignPartners/ajax.php", caches: false, data: { NAME: nameValuet, PHONE: phoneValuet,}, dataType: "html", beforeSend: function(){ $(".submitButton").prop("disabled", true); }, success: function(data){ if(!data) alert("Были ошибки, письмо не отправленно!"); else $("#form__top").trigger("reset"); $(".submitButton").prop("disabled", false); }, }); } }); }); </code>

вот скрипт для отправки письма

$name = $_POST['name']; $phone = $_POST['phone']; $email = "отправитель@example.com";  $subject = "=?utf-8?B?".base64_encode("Сообщение с сайта")."?="; $message = "Имя: $name<br>Телефон: $phone";  $headers = "From: $emailrnReply-To: $emailrnContent-Type: text/html; charset=utf-8rn";  $succes = mail("vitamin-971@yandex.ru", $subject, $message, $headers);  echo $succes;

$name = $_POST['name']; $phone = $_POST['phone']; $email = "отправитель@example.com"; $subject = "=?utf-8?B?".base64_encode("Сообщение с сайта")."?="; $message = "Имя: $name<br>Телефон: $phone"; $headers = "From: $emailrnReply-To: $emailrnContent-Type: text/html; charset=utf-8rn"; $succes = mail("vitamin-971@yandex.ru", $subject, $message, $headers); echo $succes;

Дополнительно:

Не приходят, потому что не отправляются.
Проверьте как mail настроен. php.ini [mail function]

Ответы:

Проверьте свои письма здесь: https://www.mail-tester.com/
Скорее всего, получите 1/10
А дальше исправляйте каждый пункт. Начать, скорее всего, придётся с отказа от штатного mail и перехода на PHPMailer с отправкой через SMTP-сервер яндекса.

что может быть не так

$(document).ready(function () {  	const namet = document.getElementById('feedback_form_name3'); 	const phonet = document.getElementById('feedback_form_phone3'); 	const feedbackformurl3 = document.getElementById('feedback_form_url3');  	$(".submitButton").click(function () { 		const nameValuet = namet.value; 		const phoneValuet = phonet.value; 		const feedbackformurl5Value = feedbackformurl3.value; 		// Получение значения checkbox 		var isChecked = $("#checkboxAgree").is(":checked"); 		// Проверка значения checkbox 		if (!isChecked) { 			// Вывод сообщения об ошибке 			alert("Пожалуйста, примите политику конфиденциальности."); 			return; // Прерываем выполнение функции 		}  		if (nameValuet == "" || phoneValuet == "") {  			$("#feedback_form_danger3").css("display", "");  		} 		else {  			$("#feedback_form_danger3").css("display", "none"); 			$("#feedback_form_success3").css("display", "");  			$.ajax({ 				type: "POST", 				url: "/local/components/main/send.form/templates/send.form-newdesignPartnersTop/ajax.php", 				caches: false, 				data: { NAME: nameValuet, PHONE: phoneValuet, }, 				dataType: "html", 				beforeSend: function () { 					$(".submitButton").prop("disabled", true); 				}, 				success: function (data) { 					if (!data) 						alert("Были ошибки, письмо не отправленно!"); 					else 						$("#form__top").trigger("reset"); 					$(".submitButton").prop("disabled", false); 				}, 			}); 		}  	}); });

$(document).ready(function () { const namet = document.getElementById('feedback_form_name3'); const phonet = document.getElementById('feedback_form_phone3'); const feedbackformurl3 = document.getElementById('feedback_form_url3'); $(".submitButton").click(function () { const nameValuet = namet.value; const phoneValuet = phonet.value; const feedbackformurl5Value = feedbackformurl3.value; // Получение значения checkbox var isChecked = $("#checkboxAgree").is(":checked"); // Проверка значения checkbox if (!isChecked) { // Вывод сообщения об ошибке alert("Пожалуйста, примите политику конфиденциальности."); return; // Прерываем выполнение функции } if (nameValuet == "" || phoneValuet == "") { $("#feedback_form_danger3").css("display", ""); } else { $("#feedback_form_danger3").css("display", "none"); $("#feedback_form_success3").css("display", ""); $.ajax({ type: "POST", url: "/local/components/main/send.form/templates/send.form-newdesignPartnersTop/ajax.php", caches: false, data: { NAME: nameValuet, PHONE: phoneValuet, }, dataType: "html", beforeSend: function () { $(".submitButton").prop("disabled", true); }, success: function (data) { if (!data) alert("Были ошибки, письмо не отправленно!"); else $("#form__top").trigger("reset"); $(".submitButton").prop("disabled", false); }, }); } }); });

<?php use PHPMailerPHPMailerPHPMailer; // Файлы phpmailer require 'phpmailer/PHPMailer.php'; require 'phpmailer/SMTP.php'; require 'phpmailer/Exception.php';  # проверка, что ошибки нет if (!error_get_last()) {      // Переменные, которые отправляет пользователь     $name = $_POST['name'] ;     $phone = $_POST['phone'];      // Формирование самого письма     $title = "Заголовок письма";     $body = "     <h2>Новое письмо</h2>     <b>Имя:</b> $name<br>     <b>Телефон:</b> $phone<br><br>     ";          // Настройки PHPMailer     $mail = new PHPMailerPHPMailerPHPMailer();          $mail->isSMTP();        $mail->CharSet = "UTF-8";     $mail->SMTPAuth   = true;     //$mail->SMTPDebug = 2;     $mail->Debugoutput = function($str, $level) {$GLOBALS['data']['debug'][] = $str;};          // Настройки вашей почты     $mail->Host       = 'smtp.mail.ru'; // SMTP сервера вашей почты     $mail->Username   = 'murin@fredtm.ru'; // Логин на почте     // $mail->Password   = '=========='; // Пароль на почте     $mail->Password   = '3p65pdztMft6QFeNmkrm'; // Пароль приложения      $mail->SMTPSecure = 'ssl';     $mail->Port       = 465;     $mail->setFrom('murin@fredtm.ru', 'Name'); // Адрес самой почты и имя отправителя          // Получатель письма     $mail->addAddress('vitamin-971@yandex.ru');         // Отправка сообщения     $mail->isHTML(true);     $mail->Subject = $title;     $mail->Body = $body;              // Проверяем отправленность сообщения     if ($mail->send()) {         $data['result'] = "success";         $data['info'] = "Сообщение успешно отправлено!";     } else {         $data['result'] = "error";         $data['info'] = "Сообщение не было отправлено. Ошибка при отправке письма";         $data['desc'] = "Причина ошибки: {$mail->ErrorInfo}";     }      } else {     $data['result'] = "error";     $data['info'] = "В коде присутствует ошибка";     $data['desc'] = error_get_last(); }  // Отправка результата header('Content-Type: application/json'); echo json_encode($data);  ?>

<?php use PHPMailerPHPMailerPHPMailer; // Файлы phpmailer require 'phpmailer/PHPMailer.php'; require 'phpmailer/SMTP.php'; require 'phpmailer/Exception.php'; # проверка, что ошибки нет if (!error_get_last()) { // Переменные, которые отправляет пользователь $name = $_POST['name'] ; $phone = $_POST['phone']; // Формирование самого письма $title = "Заголовок письма"; $body = " <h2>Новое письмо</h2> <b>Имя:</b> $name<br> <b>Телефон:</b> $phone<br><br> "; // Настройки PHPMailer $mail = new PHPMailerPHPMailerPHPMailer(); $mail->isSMTP(); $mail->CharSet = "UTF-8"; $mail->SMTPAuth = true; //$mail->SMTPDebug = 2; $mail->Debugoutput = function($str, $level) {$GLOBALS['data']['debug'][] = $str;}; // Настройки вашей почты $mail->Host = 'smtp.mail.ru'; // SMTP сервера вашей почты $mail->Username = 'murin@fredtm.ru'; // Логин на почте // $mail->Password = '=========='; // Пароль на почте $mail->Password = '3p65pdztMft6QFeNmkrm'; // Пароль приложения $mail->SMTPSecure = 'ssl'; $mail->Port = 465; $mail->setFrom('murin@fredtm.ru', 'Name'); // Адрес самой почты и имя отправителя // Получатель письма $mail->addAddress('vitamin-971@yandex.ru'); // Отправка сообщения $mail->isHTML(true); $mail->Subject = $title; $mail->Body = $body; // Проверяем отправленность сообщения if ($mail->send()) { $data['result'] = "success"; $data['info'] = "Сообщение успешно отправлено!"; } else { $data['result'] = "error"; $data['info'] = "Сообщение не было отправлено. Ошибка при отправке письма"; $data['desc'] = "Причина ошибки: {$mail->ErrorInfo}"; } } else { $data['result'] = "error"; $data['info'] = "В коде присутствует ошибка"; $data['desc'] = error_get_last(); } // Отправка результата header('Content-Type: application/json'); echo json_encode($data); ?>

  • что может быть не так

    Какая именно проблема?
    Что приходит в ответ?
    По js вижу, что вы не отменяет сабмит самой формы. Короче, по коду много нюансов в плане того, что пользователь намеренно может отправить вам форму на бекэнд и т.п.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Кирилл JS Ответ

Для начала, если у вас проблемы с отправкой писем, важно проверить несколько ключевых моментов, которые могут стать причиной возникновения проблемы.

1. Проверьте настройки SMTP сервера: убедитесь, что вы правильно skonфигурировали SMTP сервер для отправки писем. Проверьте хост, порт, учетные данные (логин и пароль), шифрование и другие параметры, которые могут влиять на отправку писем.

$smtp_host = 'smtp.example.com';
$smtp_port = 587;
$username = 'your_email@example.com';
$password = 'your_password';
$encryption = 'tls';

$smtp_host = 'smtp.example.com'; $smtp_port = 587; $username = 'your_email@example.com'; $password = 'your_password'; $encryption = 'tls';

2. Проверьте спам-фильтры: иногда письма могут попадать в спам из-за некорректной настройки заголовков или содержания письма. Убедитесь, что ваше письмо не считается спамом и не блокируется фильтрами.

3. Проверьте логи: если у вас есть доступ к логам отправки писем, обязательно проверьте их на наличие ошибок или предупреждений, которые могут указать на причину проблемы.

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

Если после выполнения всех этих шагов проблема с отправкой писем остается, рекомендуется обратиться к провайдеру услуг почтовой рассылки или администратору сервера для получения дополнительной помощи и диагностики проблемы.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно