Как обрабатывать ошибки доставки почты с помощью PHP
Я создаю модуль Symfony для рассылки новостей. Идея состоит в том, чтобы создать список очередей для получения почты, а затем, с заданием cron, отправить, скажем, 50 одновременно.
То, что я сейчас не знаю, как это сделать, это прочитать отчеты о доставке почты, которые отправляются обратно на сервер, когда адрес электронной почты не существует или почта заполнена. Идея состоит в том, чтобы хранить эти сообщения об ошибках в чистом списке адресов.
Любая идея, как это реализовать?
2 ответа
При чтении "отказов входящей почты" вы можете использовать такой класс, чтобы фактически проанализировать почту и посмотреть, какой статус был возвращен (например, постоянная или временная ошибка):
http://www.phpclasses.org/browse/package/2691.html
Для точного синтаксического анализа почты вам будет трудно, так как не все почтовые серверы одинаковы, и некоторые отправят вам "почтовый ящик заполнен"- ошибка, помеченная флагом "перманент", в то время как другие могут сказать вам, что ошибка "пользователь не делает" T существует "является" временным ".
Я однажды попробовал решение для этого и закончил тем, что настроил свой собственный парсер, связанный с огромной базой данных, содержащей возможные ответы сервера (и их "реальное" значение:).
Вы можете использовать ответ на адрес при отправке. Таким образом, отправленные письма будут отправлены на этот идентификатор. Вы также можете создать другой PHP-скрипт, который будет читать этот почтовый ящик "ответить на" и получать из него идентификатор. Затем вы можете удалить этот идентификатор из списка, который у вас есть.