Pull to refresh

Comments 11

очень интересная идея, спасибо!
Я бы предложил не использовать ИМАП/ и вообще не создавать реалный ящик, а пайпить алиас noreply прямо в ваш скрипт, данные считывать прямо из stdin
Если пайпить в реальном времени, появится возможность DOS.
Можно не пайпить, а по крону ротировать и парсить mbox.
Да и ради операции которая запускается раз в несколько дней держать целый экземпляр приложения в памяти, думаю, не стоит. Особенно когда уже есть запущенные экземпляры(Resque, DJ) для других фоновых периодических задач, которые можно использовать.
А зачем держать экземпляр приложения в памяти? Речь шла о том, что если у вас собственный почтовый сервер, то его можно настроить, чтобы он письма на noreply не сохранял до обработки, а вызывал ваш скрипт для обработки сразу в момент получения. Скрипт будет запускаться единожды на каждое письмо.
Возможно, я не так понял и/или выразился.
Это не просто скрипт, это кусок кода, который надо поместить в Resque/DJ job или rake-task. «Запустить этот скрипт» означает запустить целиком приложение (нам как минимум надо доступ к БД, чтобы пользователей отписать)
А если уже есть экземпляры приложения, которые можно использовать, зачем еще один?
Да еще и на каждое письмо, а если 100500 разом придет? А если почтовый сервер не свой?
Ага, а stand-alone приложению, то которое у вас одно, будет очень хорошо, если на него посыпется 100500 режектов (=
Вопрос противодействию перегрузке надо учитывать что для вашего решения, что для альтернативного скрипта на пайпе.
Не до конца понял комментарий. Что за stand-alone приложение?

Скажу другими словами. 1 фоновый процесс обрабатывающий в цикле 100500 сообщений по одному за раз все-таки лучше чем 100500 новых запускаемых одновременно процессов. Или нет? Да, дольше отработает, но в данной ситуации не нужны реалтайм изменения.
Мы, администраторы на аутсорсе, решили проблему за ~15 минут сделующим образом:
1) Написали скрипт на баше / awk, который по крону парсил exim.log(ежедневно перед logrotate'ом) и записывал в формате «емэйл \t причина_отказа» все проваленные доставки почты -> по списку запускал пхп-скрипт из пункта два -> отправлял клиенту письмо с ответом скрипта из пункта два.
2) Написали php-файл на сервере, который переименовывал email-адрес пользователя в особый формат, формировал и отдавал ответ на основе принятого решения.
3) Сказали, как добавить в код сайта, отвечающего за рассылку проверку, попадает ли пользователь под проверку из пункта два.

И после этого ждали около трех недель ответ от mail.ru чтобы они исключили домен клиента из спам-фильтра, в который он попал из-за «большого» числа писем на несуществующие ящики.

Скажу сразу — авторизация у скрипта есть, хотя проще было бы поставить ограничение на доступ только с 127.0.0.1. Но тогда криент бы не увидел волшебных полей для ввода и кнопочки, делающей магию)
А такие сообщения ошибок «от почтового сервера» не получится подделать третьему лицу? Тогда можно со стороны отписывать ничего не подозревающих пользователей, если их почтовый адрес известен.
Sign up to leave a comment.