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

Почему письмо с сервера (через php код) то приходит ко мне на почту, то нет?

Я хочу отправлять письма с каким-то текстом с сервера (хостинг и домен на reg.ru) себе на почту. Код ниже. Самое странное - это тот факт, что письмо то приходит на почту, то нет. Никак не пойму, от чего это может зависеть. Если у Вас есть какие-то идеи, подскажите, пожалуйста.
$message = 'Random Text';
$to = 'm.y.mail.for.site@mail.ru';
$spectext = '<!DOCTYPE HTML><html><head><title>Заказ</title></head><body>';
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";

$mailSent = mail($to, 'Заказ в магазине MementoMori', $spectext.$message.'</body></html>', $headers);

if ($mailSent) {echo 1;} else {echo 0;}
  • Вопрос задан
  • 995 просмотров
Подписаться 6 Простой 1 комментарий
Решения вопроса 1
zkrvndm
@zkrvndm
Архитектор решений
Функция mail() ненадёжна, так как почтовики очень часто банят письма отправленные с подозрителтных серверов (тут вопросы к хостеру). Для гарантированной отправки уведомлений, необходимо использовать реальную почту у любого крупного почтового сервиса в связке с SMTP. Рекомендую это решение:
https://github.com/Ipatov/SendMailSmtpClass
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@qid00000000
Мало что знаю, но информацию найду в гугле
У вас отсутствует заголовок From (в коде не вижу). Возможно, хостинг может подменять его (см. Тех. заголовки письма), тогда оно будет с некоторой вероятностью попадать в спам (вы же не один отправляете).

Вам нужно задать заголовок вида:
From: blabla@ваш.домен
Тогда, отправка будет корректна. Еще, как вариант, вы можете отправлять через phpmailer (куда надёжнее, указываете smtp, ящик, пароль)

(Здесь должен быть текст, что в некорректной отправке виноват хостинг провайдер, и предложение его сменить, но я посчитал, что буду выглядеть как профессионал, что мне не нужно, и решил оставить комментарий)
Ответ написан
zabudkin
@zabudkin
Инженер-системотехник, программист, админ, ТПУ!!!!
Скрипт рабочий.
Почта отправляется 100%.
посмотрите её в спаме.

ну на крайняк
$spectext.$message
в
htmlentities ($spectext.$message)
Ответ написан
Ваш ответ на вопрос

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

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