Удаление пользователей из почтового списка на основе сообщения о недоставке

Каков наилучший способ выяснить, какие пользователи электронной почты могут быть удалены из сообщения отказов?
Примером является код ошибки 5.1.1, где почтовый ящик больше не существует.
Я использую формат файла mbox от Thunderbird.

Мои идеи включают в себя поиск статуса: 5.1.1 и просмотр ~2 строк вниз, чтобы увидеть X-Display-Name: example@online.de.
Кто-нибудь знает как это сделать?

2 ответа

Решение

Один из способов обработки отказов - способ, которым это делает обработчик отказов ezmlm. Он отправляет серию сообщений о возврате на адрес, который отскочил, чтобы проверить, был ли отскок временным или постоянным. Они описывают свою технику довольно подробно на своих страницах справки Bounces and Automated Bounce Handling.

Есть отличное сообщение в блоге Джейсона Роу о правилах отправки электронной почты и обработки отказов.

Также ознакомьтесь с этими рекомендациями.

Или вы можете вручную кодировать, какие сообщения вы хотите пересылать на основе кода пересылки почты. Вы можете получить список всех кодов в RFC 3463, в котором объясняется, что означает каждый из них и какой тип отказа они имеют.

Решить, что такое сильный или мягкий отскок, - не наука. Это искусство. Я исследовал и думал о программировании этого сам, но обнаружил, что это открывает банку с червями. Затем я собирался использовать phpList и выяснить, как работает его обработчик отказов. Это было не легче.

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

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

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