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.