Как управлять пересылкой писем и ошибками в PHP? - PullRequest
1 голос
/ 04 февраля 2012

Как лучше всего управлять ошибками / ошибками в электронных письмах, если вы создаете программное обеспечение для массовой рассылки? Я планирую использовать PHP для этого.

Прежде, чем кто-то начнет кричать, да, списки будут от действительных клиентов, которые подписались.

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

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

Спасибо

1 Ответ

1 голос
/ 04 февраля 2012

Одной из возможных вещей, которую вы могли бы сделать, кроме того, чтобы PHP-скрипт считывал почту с сервера pop / imap, было бы направление входящей почты по определенному адресу в php-скрипт. См. Google

Затем вы должны прочитать все содержимое сообщения, выполнив что-то вроде $email = file_get_contents('php://stdin'); Я установил расширение php mailparse , чтобы помочь в анализе писем RFC, но есть и другие доступные варианты. Вам даже не обязательно использовать что-либо для анализа сообщения.

Если у вас есть сообщение, вы можете использовать несколько индикаторов, чтобы попытаться пометить сообщение как ожидающее. Во-первых, посмотрите статью в Википедии о Отчеты о недоставке , в частности Формат и RFC 6522 - Тип мультимедиа / отчета для сообщений администратора системы электронной почты Вы также можете проверить общие заголовки в сообщении, такие как X-Failed-Recipients или Diagnostic-Code.

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

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

Вот несколько дополнительных ссылок:

http://forums.theplanet.com/lofiversion/index.php/t89873.html (примечание Возможность улучшения 2)
https://stackoverflow.com/questions/5700034/how-do-i-process-a-bounce-email-to-find-the-error-code
Отказаться от обработки электронной почты с помощью PHP?

Надеюсь, это поможет.

...