Есть база клиентов (более 10 000 адресов) по которым ведем еженедельную рассылку. В обратку на ящик приходят bounce-письма откаты: несуществующий ящик, несуществующий домен, антиспам-защита и т.д. Есть необходимость почистить базу адресов от не существующих и проблемных, а также знать какие письма и по каким адресам были не доставлены! Обрабатывать входящую почту после каждой рассылки в 10 тыс. писем в ручную - геморрой, нужна автоматизация! 1) Пробовал найти что-нибудь готовое, нашел только скрипт PHPMailer-BMH (http://phpmailer.worxware.com/index.php?pg=bmh) Но в моём случае он для каждого Bounce-письма выдает строчку вида: Msg #1 is not a standard DSN message Проект был заброшен в январе 2009 года. Данный скрипт читает через IMAP письма на ящике и анализирует их содержимое по своим правилам: Код (PHP): /* * <xxxxx@yourdomain.com>: * 111.111.111.111 does not like recipient. * Remote host said: 550 User unknown */ elseif (preg_match ("/<(\S+@\S+\w)>.*\n?.*\n?.*user unknown/i",$body,$match)) { $result['rule_cat'] = 'unknown'; $result['rule_no'] = '0236'; $result['email'] = $match[1]; } /* * rule: mailbox unknown; * sample: * <xxxxx@yourdomain.com>: * Sorry, no mailbox here by that name. vpopmail (#5.1.1) */ elseif (preg_match ("/<(\S+@\S+\w)>.*\n?.*no mailbox/i",$body,$match)) { $result['rule_cat'] = 'unknown'; $result['rule_no'] = '0157'; $result['email'] = $match[1]; } Проблема в том, что в скрипте я не нашёл ни строчки кода, посвященной перекодировке сообщений, а это как мне кажется очень важный момент по которому правила обработки писем на поиск совпадений через preg_match не работают! 2) Находил еще такую статью на хабре: http://habrahabr.ru/post/126448/. Однако хостинг не позволяет настраивать почтовик. Менять хостинг не собираемся в ближайшее время, потому вариант отпадает. И потом рассылка ведется с трех разных e-mail аккаунтов (адресов), по мимо рассылки по ним еще переписка в ручном режиме с клиентами осуществляется так что совсем не судьба. 3) Остается вариант написать самому скрипт, который бы: после каждой рассылки через определенное время проверял бы почтовый ящик на предмет нахождения в нём bounce-писем анализировал бы содержимое этих писем, потому как не все обратные письма могут быть bounce-ответами и помечал бы адреса в базе как несуществующие, проблемные и т.д. Может быть кто-нибудь сталкивался с такими задачами? Или знает готовое решение, которое я не смог найти в Интернете? PHP, JavaScript, SQL и другой код пишите внутри тегов Код ( (Unknown Language)): [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
впс вообще, вам не нужено почтовик настраивать. Вам нужно через пхп показывать сообщения с любого ящика, а рядом просто рисовать кнопку, которая будет отмечать адрес дохлым. Делать это можно вручную, одну кнопку нажать легко и быстро. Когда база очистится, то отлупы не будут тыщами приходить и будет просто и удобно.
хм..., интересная идея, спасибо ))) Добавлено спустя 1 минуту 36 секунд: вот только среди писем на ящик с которого идет рассылка могут быть простые письма переписки между нашими сотрудниками и клиентами. и хорошо бы мне как-то отфильтровать явные письма bounce-откаты от любых других писем...