Как обрабатывать ошибки доставки почты с помощью PHP

Я создаю модуль Symfony для рассылки новостей. Идея состоит в том, чтобы создать список очередей для получения почты, а затем, с заданием cron, отправить, скажем, 50 одновременно.

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

Любая идея, как это реализовать?

2 ответа

Решение

При чтении "отказов входящей почты" вы можете использовать такой класс, чтобы фактически проанализировать почту и посмотреть, какой статус был возвращен (например, постоянная или временная ошибка):

http://www.phpclasses.org/browse/package/2691.html

Для точного синтаксического анализа почты вам будет трудно, так как не все почтовые серверы одинаковы, и некоторые отправят вам "почтовый ящик заполнен"- ошибка, помеченная флагом "перманент", в то время как другие могут сказать вам, что ошибка "пользователь не делает" T существует "является" временным ".

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

Вы можете использовать ответ на адрес при отправке. Таким образом, отправленные письма будут отправлены на этот идентификатор. Вы также можете создать другой PHP-скрипт, который будет читать этот почтовый ящик "ответить на" и получать из него идентификатор. Затем вы можете удалить этот идентификатор из списка, который у вас есть.

Другие вопросы по тегам