@efimenko_b

Из-за чего может не приходить письмо на почту?

Обычная форма:
<form action="" method="post">
						<input type="text" placeholder="Ваш номер телефона" name="phone" class="inp-phone" required>
						<input type="text" placeholder="Ваше имя" name="name" class="inp-name">
						<input type="text" placeholder="Компания" name="company" class="inp-comp">
						<button type="submit">Получить скидку</button>
					</form>

ajax отправка:
$('form').submit(function(){
		var form = $(this),
		data = form.serialize();
		$.ajax({
			type: "POST",
			url: "mail.php",
			data: data,
			success: function(){
alert('good');
form.find('input').val('');
			},
			error: function (xhr, ajaxOptions, thrownError) { 
	            alert(xhr.status); 
	            alert(thrownError); 
	        }  
		});
		return false;
	});

PHP обработчик:
<?php

$name = trim(htmlspecialchars($_POST['name']));
$phone = trim(htmlspecialchars($_POST['phone']));
$company = trim(htmlspecialchars($_POST['company']));
$tarif = trim(htmlspecialchars($_POST['tarif']));

mail ("mail@mail.ru",
      "Сообщение от : $name",
       "Имя: $name \nТелефон: $phone \nКомпания: $company \nТариф: $tarif",
       "Content-type:text/plain; charset=utf-8");
?>


Письмо не приходит, алерт срабатывает, вкладка "сети" в отладчике, по этому запросу возвращает статус 200. Все вроде бы правильно, но письма нету, не в спаме не в обычных письмах. В чем может быть проблема?
проверял на двух разных хостах, все тоже самое.
  • Вопрос задан
  • 1772 просмотра
Пригласить эксперта
Ответы на вопрос 5
azrail_dev
@azrail_dev
Попробуй через https://github.com/PHPMailer/PHPMailer
Ответ написан
Комментировать
hacker342
@hacker342
Like Linux
Ам, смотрите, тоже столкнулся с такой штукой, оказывается на моем сервере не была установлена библиотека, sendmail, у вас хостинг или сервер свой?
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Что в логах HTTP-сервера?
Ответ написан
@sarathorn
php программист, веб-дизайнер, коллекционер
Сталкивался с тем, что письма отправленные через mail() не приходят на почту mail.ru и gmail.com, в яндексе попадают в спам, но их хотя бы можно прочесть. Решение: возиться с DKIM и доверенными серверами (особо не вникал в тему, пошёл вторым путём), коннектиться через smtp к реальному ящику и через него отправлять. Для второго варианта использую PHPMailer. Ссылку уже дал Владимир Дадонов. На данный момент моя схема работы с почтой выглядит так:
1) Все домены подключаются к Почте для Домена от Яндекса (pdd.yandex.ru)
2) Создаётся ящик, например, no-reply@домен.tld
3) Скрипт коннектится к этому ящику и просто через него шлёт
4) Письма 100% доходят до mail.ru, yandex.ru, gmail.com и НЕ попадают в спам
Ответ написан
Комментировать
Revencu
@Revencu
Наверно IP почтового сервера попал в blacklist
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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