Задать вопрос

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

Вот форма
<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: $email\r\nReply-To: $email\r\nContent-Type: text/html; charset=utf-8\r\n";

$succes = mail("vitamin-971@yandex.ru", $subject, $message, $headers);

echo $succes;
  • Вопрос задан
  • 86 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Проверьте свои письма здесь: https://www.mail-tester.com/
Скорее всего, получите 1/10
А дальше исправляйте каждый пункт. Начать, скорее всего, придётся с отказа от штатного mail и перехода на PHPMailer с отправкой через SMTP-сервер яндекса.
Ответ написан
Комментировать
@MurinSergey Автор вопроса
что может быть не так
$(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 PHPMailer\PHPMailer\PHPMailer;
// Файлы 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 PHPMailer\PHPMailer\PHPMailer();
    
    $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);

?>
Ответ написан
Ваш ответ на вопрос

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

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