Не работает скрипт отправки письма

SEO_87
На сайте с 05.08.2008
Offline
104
1373

Здравствуйте! Не могу понять почему не уходят письма. В логах пусто. Есть вот такой простой скрипт

<?php
//Если форма отправлена
if(isset($_POST['submit'])) {

//Проверка Поля ИМЯ
if(trim($_POST['contactname']) == '') {
$hasError = true;
} else {
$name = trim($_POST['contactname']);
}
//Проверка правильности ввода EMAIL
if(trim($_POST['email']) == '') {
$hasError = true;
} else if (!preg_match("/^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9\-]{2,}\.[a-zA-Z0-9\-\.]+$/i", trim($_POST['email']))) {
$hasError = true;
} else {
$email = trim($_POST['email']);
}
//Проверка Поля Компания
if(trim($_POST['company']) == '') {
$hasError = true;
} else {
$company = trim($_POST['company']);
}

//Проверка поля ТЕМА
if(trim($_POST['subject']) == '') {
$hasError = true;
} else {
$subject = trim($_POST['subject']);
}

//Проверка поля Телефон
if(trim($_POST['tel']) == '') {
$hasError = true;
} else {
$tel = trim($_POST['tel']);
}

//Проверка наличия ТЕКСТА сообщения
if(trim($_POST['message']) == '') {
$hasError = true;
} else {
if(function_exists('stripslashes')) {
$comments = stripslashes(trim($_POST['message']));
} else {
$comments = trim($_POST['message']);
}
}


//Если ошибок нет, отправить email
if(!isset($hasError)) {
$emailTo = 'test@ya.ru'; //Получатель
$myname = 'test@ya.ru'; //Ящик, выступающий отправителем
$body = "Имя: $name \nEmail: $email \nTelephone: $tel \n\n $company \n\n $comments";
$headers = 'From: My Site <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $tel;
mail($emailTo, $subject, $body, 'From:'.$myname. "\r\n" . "MIME-Version: 1.0\r\nContent-type: text/plain; charset=utf-8");
//mail($emailTo, $subject, $body, $headers);
$emailSent = true;
}
}
?>


<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input name="contactname" type="text" required="required" placeholder="Name*">
<input name="company" type="text" required="required" placeholder="Компания">
<input name="tel" type="tel" required="required" placeholder="Phone*">
<input name="email" type="email" placeholder="Email*">
<input name="subject" type="text" class="form-control" required="required" placeholder="Subject*">
<textarea name="message" placeholder="Сообщение"></textarea>
<?php if(isset($hasError)) { //Если найдены ошибки ?>
<p style="padding-bottom: 30px;text-align: center;">Please check if all fields are correct.</p>
<?php } ?>
<?php if(isset($emailSent) && $emailSent == true) { //Если письмо отправлено ?>
<p style="padding-bottom: 30px;text-align: center;">Thank you!</p>
<?php } ?>
<button name="submit" type="submit" >SEND</button>
</form>

В спаме писем нет, в логах пусто. В чем может быть проблема? Почтовые сервисы могут фильтровать, не отправляя в спам?

M
На сайте с 04.12.2013
Offline
223
#1

Ну если во From указать test@ya.ru, то могут (Mail.Ru точно неавторитетные письма с якобы своих доменов режет на корню без зазрения совести). Вижу, вы с заголовками совсем не дружите. Одно $tel в Reply-To чего стоит! Хотя походу это какая-то сиротская строка в коде, вы ее не используете по назначению, но ведь могли бы!

---------- Добавлено 10.07.2017 в 18:54 ----------

subject на кириллице кодировать нужно. Основное содержимое тоже, хотя за счет указания сим. кодировки может прокатить, но это под честное слово.

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
Gerga
На сайте с 02.08.2015
Offline
94
#2

SEO_87, сделайте проверку функции mail


echo mail('xuligan@ya.ru', 'Тема', 'сообщение');
Оптимизайка
На сайте с 11.03.2012
Offline
396
#3
SEO_87:
В спаме писем нет, в логах пусто. В чем может быть проблема? Почтовые сервисы могут фильтровать, не отправляя в спам?

mail.ru может. А в каких именно логах смотрели?

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
S
На сайте с 30.09.2016
Offline
469
#4

Да, указывайте From: ящик на своём домене, если в днс нет записи на яндекс.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
SeVlad
На сайте с 03.11.2008
Offline
1609
#5
miketomlin:
Вижу, вы с заголовками совсем не дружите.

+150. В заголовках ахунг.

SEO_87,

Во From - мыло на домене сайта.

Мыло отправителя (для ответа) - в Reply-To (а не номер телефона туда пихать: ))

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий