Устранение неполадок PHP Mail

Как я могу проверить проблему с отправкой почты на моем сервере? Я пробую простой тест:

if(mail($to, $subject, $message)) { echo 'Mail Sent'; } 

который тест выводит текст; но, почта не приходит.

  • APNS + PHP "stream_socket_client (): Не удалось включить криптографию"
  • warning feof () ожидает, что параметр 1 будет ресурсом
  • как импортировать файл .sql в базу данных mysql, используя php
  • загрузка файла php, как ограничить тип загрузки файла
  • SimpleXML: получить дочерние узлы
  • Итерации по каждой строке в строке в PHP
  • Как я могу отслеживать проблему?

    6 Solutions collect form web for “Устранение неполадок PHP Mail”

    Это довольно длинная история. Несколько точек маркера (Предполагая, что mail () возвращает true и ошибок в журнале ошибок нет):

    • Адрес отправителя («От») относится к домену на вашем сервере? Если нет, сделайте это так.
    • Ваш сервер включен в черный список (например, проверьте IP-адрес на spamhaus.org)? Это удаленная возможность с общим хостингом.
    • Отфильтрованы ли письма фильтром спама? Откройте учетную запись с freemailer с папкой спама и узнайте. Кроме того, попробуйте отправить почту на адрес без спам-фильтра.
    • Возможно, вам нужен пятый параметр «-f» почты (), чтобы добавить адрес отправителя? (См. Команду mail () в руководстве по PHP)
    • Если у вас есть доступ к файлам журналов, проверьте их, как указано выше.
    • Вы проверяете адрес «from:» для возможных отказов («Возврат отправителю»)? Вы также можете настроить отдельный адрес «error-to».

    Для немецких докладчиков я написал довольно подробное «что делать» по этому вопросу некоторое время назад. См. Здесь .

    После Myles, если вы находитесь в Linux-боксе, сделайте это в командной строке:

     # echo “Body text.” | mail -s “Hello world” you@example.com 

    Если вы не получили это письмо, у вас возникла проблема с почтовой системой в этом поле. Это другой вопрос из заданного вами вопроса PHP.

    Из руководства по PHP:

     Return Values Returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise. It is important to note that just because the mail was accepted for delivery, **it does NOT mean the mail will actually reach the intended destination**. 

    Не уверен, как сделать следующий шаг, но это важный момент.

    Если все попытки устранения неполадок терпят неудачу – теперь предполагается, что mail () возвращает false по неизвестным причинам – переключитесь на почтовый скрипт, такой как PHPMailer, который позволяет обойти почту () вообще и напрямую подключиться через SMTP и предлагает расширенный режим отладки. Таким образом, вы должны иметь возможность настроить рабочее решение или найти суть проблемы.

    Первое, что я начинал, это журнал ошибок PHP, а затем ваш журнал sendmail. Также попробуйте sendmail из командной строки и проверьте конфигурацию PHP, чтобы убедиться, что она настроена правильно для отправки почты.

    Вы работаете на реальном веб-сервере здесь или что-то еще по линии личной тестовой программы? (То есть, ваша домашняя машина?) Если это последняя, ​​я могу сказать вам, что у меня было много проблем в прошлом, когда мой ISP (Cox) фильтровал мои исходящие почтовые порты. (Они скажут вам, что они этого не делают, но я уверен, что они это делают.)

    Я также получил некоторые исходящие сообщения, которые делали это, заставляя меня попасть в почтовую катушку Cox за несколько дней до того, как они были доставлены мне.

    Надеюсь, это полезно.

    PHP is the Best Programming Language in the world.