@Sirex1337

Что делать если не отправляется письмо, хоть нету ошибок php?

Всем привет, столкнулся с такой проблемой, попытался отправить сообщение через функцию mail(), но почему-то не работает, ошибок нету. Все залито на хостинг " beget
$mail = "Kasach.Andrey123@mail.ru";
$message = "Сообщение письма";
if(mail($mail, "Order has been submitted successfully", $message)){
   echo "Письмо отправлено";
}else{
    echo "Ошибка";
}
"
Все время выводит "Письмо отправлено", но на почту ничего не приходит
  • Вопрос задан
  • 356 просмотров
Пригласить эксперта
Ответы на вопрос 3
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Во первых mail() возвращает фигню, которая вообще ни о чем:
Возвращает TRUE, если письмо было принято для передачи, иначе FALSE.
Важно заметить, что то что письмо было принято для передачи вовсе НЕ означает что оно достигло получателя.

Во вторых - проверить спам, проверить другой почтовый адрес... Поплясать голым с бубном при полной луне вокруг серверной хостера...

Или взять нормальную библиотеку, например PHPMailer, настроить и пользоваться.
Ответ написан
anton_reut
@anton_reut
Начинающий веб-разработчик
Функция mail большинством хостеров блокируется по умолчанию
Ответ написан
@metajiji
Функция mail() вызывает sendmail, который должен быть настроен. Обычно это почтовый сервер, у которого есть локальная очередь и возможно настройки передачи сообщений другому серверу(релей с авторизацией).
И это довольно разумно, если удаленный почтовый сервер не доступен, то письмо будет жить в локальной очереди и ждать когда сервер сможет принять письмо. А отличие от phpmail и подобных вариант с локальной очередью на локальным релее выглядит довольно просто во всех отношениях. В противном случае вы либо будете терять письма, если smtp сервер не доступен, либо писать кодик про очереди, а тут уже привет kafka, gearman, rabbitmq, redis, nemcached и другие костыли :) тем временем простой mail() + postfix поднимается за пару команд.
Ответ написан
Ваш ответ на вопрос

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

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