PHP-почта возвращает TRUE, но электронная почта не отправляется

Простой код:

mail("[email protected]", $subject, $text);

Он не отправляет электронную почту, но он все же возвращает TRUE. Что такое hapenning?

P.S. Даже если я добавляю заголовки, результат будет таким же!

Ответы

Ответ 1

из справочной страницы для почты():

Возвращает TRUE, если почта была успешно принята к доставке, FALSE в противном случае.

Важно отметить, что просто потому что почта была принята для доставка, NOT означает, что почта на самом деле назначения.


В принципе, вы ничего не можете сделать в простом PHP, если вы на самом деле не проверяете провод, чтобы узнать, что происходит. Я бы предложил использовать некоторую почтовую библиотеку, в которой есть некоторые указания на отправку почты или нет (если она существует)

Ответ 2

Знаете ли вы, что письмо не отправляется? Электронная почта может перейти от вашего php script к вашему SMTP-серверу, но будет удалена где-то между первым SMTP-сервером и gmail.

Попробуйте посмотреть сетевой трафик, чтобы проверить, отправляется ли электронное письмо, используя что-то похожее на wireshark.

Ответ 3

См. комментарий @Neal. Простое возвращение true означает очень мало.

Вы должны проверить свой PHP.ini и убедиться, что ваши SMTP-серверы установлены правильно (если в Windows) или что ваш путь sendmail (Linux) верен. Оттуда проверьте конфигурацию sendmail.