2011-01-08 4 views
2

У меня небольшая проблема. Я использую рабочий скрипт (работает на моей тестовой учетной записи - общий сервер), чтобы отправить почту через PHP с помощью функции mail().PHP mail() функция не доставляет почту

У меня только выделенный сервер, и я не смог заставить функцию работать. Я провел последние 10 или около того часов, читая различные документы по BIND (для записи SPF), dovecot, sendmail и postfix, пробуя различные вещи, чтобы заставить это работать.

Существует явно то, что мне не хватает.

Итак, мы знаем, что PHP-код работает отлично. Все заголовки все в порядке. Мы знаем это, так как это прямая копия из моей тестовой учетной записи. Поэтому проблема должна возникать где-то в конфигурации сервера. Путь к sendmail правилен, и sendmail (видимо) работает нормально. Я установил скрипт для доставки «Отправленный» или «Ошибка» на основе логического результата из функции PHP mail(). То есть:

if(mail($blah,$blah,$blah,$blah,$blah)) { echo "Sent"; } else { echo "Error";} 

И результат всегда приходит как «Отправленные» - однако, адрес электронной почты никогда не приходит. Может кто-то подсказывает, что нужно проверить, так как я совершенно новичок в этом (24 часа или около того!).

Заранее спасибо.

Райан

+2

Вы проверили папку диапазона на адрес получателя – tkt986

+0

Какой почтовый демон вы используете на своем выделенном сервере? –

+0

John, список тегов sendmail. –

ответ

0

Вы пробовали mailq command, чтобы увидеть, если есть ошибки? Вот answer to a similar question on ServerFault с более подробной информацией.

+0

Привет всем - спасибо за ответы. Ничего в спам-фильтре. Я запускаю sendmail, но у меня также есть постфикс. ОК, поэтому некоторый прогресс, когда я вводил mailq, прежде чем он возвращал «0», но теперь я набираю «mailq -Ac», и у меня появляется 8 ошибок. – Ryan

+0

Спасибо Мэтт. Сейчас я прочитаю это. – Ryan

+0

Привет, снова Мэтт. я проработал и отправил электронное письмо в свою учетную запись gmail с помощью сервера smtp google. Он прошел, но попал в папку спама без отправителя и т. Д. Я правильно понимаю, что это проблема с SPF? Или есть что-то еще, что мне не хватает? – Ryan

0

Установлен ли SMTP-сервер. Функция php mail не будет работать, если вы не установите ее. Например, в linux вы можете установить постфикс. Под окнами, MS Exchange является примером.

+0

Привет, Александр, да, постфикс работает. Я не уверен, что это проблема или нет. Я получаю отложенную ошибку в mailq. – Ryan