PEAR почта не отправляется на некоторые адреса электронной почты - PullRequest
2 голосов
/ 09 июня 2010

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

КогдаБюллетень рассылается с сайта различным подписчикам, включая электронную почту gmail, hotmail, Yahoo и электронную почту нашей собственной компании. Сообщения электронной почты принимаются корректно всеми, кроме адресов электронной почты клиентов.Поскольку между их почтовой системой и нашей собственной, которая управляется одной и той же хостинговой компанией, нет ничего особенного, я должен сделать вывод, что это как-то связано с доменом.

Письма отправляются на адресаиз системы, поскольку у меня есть файл журнала, в котором хранятся адреса электронной почты при вызове функции рассылки, но информационный бюллетень никогда не появляется в папке «Входящие».Я создал новую учетную запись электронной почты для домена, которая также не получает электронные письма.Он не попадает в папку со спамом, так как система веб-почты помечает спам, добавляя СПАМ в тему.

Я попытался войти в систему, если есть какие-либо ошибки, используя следующие

$mail =& Mail::factory('mail');

foreach($subscribers as $recipient)
{
    $send_newsletter = $mail->send($recipient, $headers, $body);

    // LOG INFO
    $message = $recipient;

    if($send_newsletter)
    {
        $message .= ' SENT';
    }
    elseif(PEAR::isError($send_newsletter))
    {
        $message .= ' ERROR: '.$send_newsletter->getMessage();
    }           
    $message .= ' | ';
    fwrite($log_file,$message);
}

Однакоэтот простой метод возвращает SENT для всех получателей, поэтому в теории нет ничего плохого в функции рассылки.[РЕДАКТИРОВАТЬ - хотя я только что заметил, что это может не работать, поскольку я использую тип 'mail', а отчеты об ошибках, похоже, применяются только для 'sendmail' или 'smtp' - это правда?)

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

По каким причинам конкретный домен не сможет принимать электронные письма, если другие домены, размещенные в той же компании, могут.

Любая помощь очень ценится как клиенти я становлюсь одновременно растерянным и разочарованным.

Приветствия

Ответы [ 2 ]

1 голос
/ 09 июня 2010

Функция почты PHP на самом деле не будет доставлять почту в почтовые ящики получателя. Он просто доставляет почту в реальное программное обеспечение почтового сервера ВАШЕГО сервера (postfix, sendmail, exim и т. Д.), И ТО, что будет выполнять фактическую работу доставки.

Поскольку большинство писем проходит, очевидно, что скрипт работает. Поэтому проверьте почтовый журнал вашего сервера (/ var / log / maillog в большинстве Unix-подобных систем) и найдите соответствующий адрес электронной почты. Если при доставке на почтовый сервер получателя возникнет проблема, он будет зарегистрирован там.

Причины сбоя доставки:

a) принимающий почтовый сервер (клиент) ОЧЕНЬ требователен к заголовкам почты и отправляет серверу что-то в слишком расслабленном формате b) Ваш сервер находится на одном или нескольких (либо напрямую, либо через радиоактивные осадки из всего перечисленного сетевого блока) списки защиты от нежелательной почты, на которые подписывается клиентский сервер c) клиентский сервер выполняет серые списки, и ваш сервер отказывается до истечения времени ожидания серого списка

Независимо от того, что это, пролистайте журналы вашего почтового сервера, чтобы увидеть, что происходит с адресом электронной почты получателя. Если он по какой-либо причине отскочил, он будет зарегистрирован, и вы сможете работать оттуда. Если выясняется, что почта доставлена ​​(сообщение типа «250 OK» является статусом доставки), то это что-то на стороне клиента, и вам понадобится их помощь в его отладке, поскольку письмо было успешно доставлено в их систему.

0 голосов
/ 09 июня 2010

Похоже, что-то происходило с использованием опции mail для заводских настроек. Когда я настроил его как SMTP, он отправлялся на все адреса электронной почты правильно.

Если кто-нибудь знает, почему это так, пожалуйста, дайте мне знать. Здорово иметь возможность что-то сортировать, но еще лучше знать, почему что-то не работает.

...