Это не реклама, наверняка есть люди с моими проблемами.
ИСТОРИЯ:
Морочился я со СПАМОМ, пока умные люди меня не отправили к Руслану (slrb@mail.ru) разработчику CHECKMAIL!
Замучил я его вопросами по настройке, но теперь сижу курю и радуюсь!
У меня почта через Eserv по POP3, dial-up.
РЕЗУЛЬТАТ:
Что делает CHECKMAIL: проверяет почту у провайдера, если:
- адрес отправителя в списке friends — пропускает;
- адрес отправителя в списке bloced, посылает сообщение отправителю — отлуп без закачки; (пока как spammers и friends)
- адрес получателя в списке local — пропускает;
- адрес получателя в списке local нет, посылает сообщение отправителю — отлуп без закачки; (без SMTP на получение я Eserv настроить не могу)
- проверяет наличие адреса получателя, если нет (провайдер залочил) — отлуп без закачки и записывает этот адресок в специальный списочек, чтобы потом снова не проверять. 5.1. проверка подлинности адреса отправителя из поля "From" — SMTP_CHECK. Работает только при наличии прямого доступа в Internet. (замечание автора)
Утром приходило 100 писем, теперь приходит 10 — из них 5 по делу 5 новых, я их в bloked и сижу курю, радуюсь. Заходил до проверки на почту действительно 100 писем лежат ждут закачки, пока CHECKMAIL не запустился.
ЭТО ТОЛЬКО МОЕ МНЕНИЕ:
Программа тянет на официальный plugin, а если добавить проверку по контексту, то страшно подумать...
Автор говорит: "нет документации".
- читают документацию только 7% пользователей;
- был бы интерес, а написать всегда можно;
- не ко всем plugin'ам есть понятная документация;
- и потом если даже я ЛАМЕРЮГА разобрался... ПОВТОРЮСЬ — ЭТО ТОЛЬКо МОЕ МНЕНИЕ
У меня — через смтп — а там проверка только одна — при начале сеанса...
Тоже спам одолел...
АС, похоже, забросил свой AC-SMTP, а уж в е-2 ждать бесполезно продвижек по модернизации смтп-демона.
Вот сижу и сам ваяю примочку к е-2 для борьбы со спамом — будет проверять заголовок письма и искать тама спамерские сигнатуры — и отлуп давать.
Я раньше голову морочил уважаемому PIG, и понял что как раз с SMTP почтой все хорошо, а вот мой случай тяжелый.
А как инициируеться Eserv'ом проверка в начале сеанса?
MAIL FROM:<тыры@пыры.рю> e-serv ищет этот тыры@пыры.рю сначала в mai\friends, а потом — в mai\spammers
Вся беда в том, что куча спамерюков в начале сеанса представляются от имени, например, роботов подписки или вааще пустым адресом — и что бы определить, спам это или нет — надо все письмо (или хотя бы заголовок) пропустить через фильтр, поэтому — эфект маловат...
А при таком подходе письмо сначала прийдеться принять, а потом анализировать...
Плевать — мона и принять — но в конце сеанса дать отлуп нафиг — вот и пускай это письмо обратно по цепочке передают — глядишь — где-нить админа заколебет это он почешется и фильтр настроит. А если спамер заливает напрямую — тоже неплохо — пусть время понапрасну теряет.
Кто тзнает, подскажите.
Кто не слышал про POPfile — http://popfile.sf.net/
И прикручивается ли эта штука к Eserv 2?
А вообще можно и у Яндекса спросить — http://www.yandex.ru/yandsearch?text=PopFile спам&rpt=rad
При установке POPFile указать какие классификаторы почты будут применяться. Я выбрал два: один — spam, это встроенный, и создал новый — oк (допустимы только маленькие латинские буковки). Указал порт, по которому почтовые клиенты будут обращаться к POPFile, например 222. Указал порт для веб-интерфейса, любой, например 333.
Все. Доп. настроек POPFile не требуется, если он стоит с Eserv на одной машине. На этой же машине можно использовать любое кол-во POP3-клиентов не изменяя более настроек POPFile.
В Eserve параметры POP3RECV изменил так: вместо имени сервера провайдера, напр. pop.provider.ru указываем 127.0.0.1. Вместо имени пользователя, напр user, указываем (внимание) pop.provider.ru:user. Поле "пароль" оставляем нетронутым. В ком. строку POP3RECV обязательно надо добавить ключ "-p 222" иначе Eserv пойдет по 110 порту сам на себя и обматерится. Все. Теперь осталось периодически заходить эксплорером на адрес http://127.0.0.1:333/ смотреть, чтобы письма классифицировались верно, и поправлять POPFile/ ежели чего не так. Учится он быстро.
Рекомендую на странице настроек выбрать русский язык, выключить изменения в теме письма (чтоб юзверей не пугать), и на странице "Ведра" (русский вариант названия классификаторов, сам впервые увидел — оборжался) включить карантин для группы "spam".
Вот теперь точно все. По утрам осталось проверять, чтобы нужная почта не классифицировалась неверно, и наоборот.
(с) Servini . Удачи.
AC — академический подход!
Servini — популизатор, явный дар преподавателя-практика!
Pig — спасибо!
Даже не верится, что проблема спама решена.
Поклон вам всем!
А такая аббревиатура как rtfm вам знакома?! читаем:
"The Quarantine function was introduced in POPFile version 0.18.0 as a bucket configurable option. When a message is placed in a bucket with Quarantine turned on (for example your spam bucket), POPFile wraps the original message in an attachment envelope with a message that details the sender, recipient and subject of the original message. If you wish to read the original message, you may open the attachment to read its contents. This feature allows you to still get an idea of the contents of the message without reading it, which is helpful if you are concerned about the use of offsite image linking (called "web bugs") that track a message recipient's email address validity. This also helps corporate POPFile users to comply with harassment laws (some spam contain pornographic images)."
Переводим: в двух словах: начиная с версии 0.18.0 в настройки "ведер" включена опция: Карантин. Если данная опция включена, то ТЕЛО ПИСЬМА БУДЕТ ИМЕТЬ ВИД атачмента (т.е получателю придет писмо с вложенным исходным письмом. Эта опция включена для того, чтобы получать содержимое исходного письма не читая его. (т.е вы открываете письмо а в теле только тема и данные от кого, а все "тело" (картинки атачи и т.д) находятся в атаче). Грубо говоря еще одна мера предосторожности. НО Письмо-то все равно пришло => что ящик юзера НИЧУТЬ! не уменьшается! а большинство юзерей по своей натуре любопытны и скорее всего окроют вложенное письмо.
поэтому карантин — это не то (полезно, но не то) для того чтобы спамерские письма удалялись, я добавил в своей утилитке, которая атачи просматривает, удаляет, архивирует и т.п
http://forum.etype.net/viewtopic.php?t=1898
Фильтр, который если встречает сигнатуру PopFile-а письмо либо прибивает, либо сносит в луп (разными файлами) либо добавляет его в какой-либо локальный почтовый ящик Есерв-а.
Еще вариант (сам не пробовал, так как пользую MChecker) немного подкрутить тоссер (помог Pig) :
изменения в файле pop3toss
P.S. мне видится, что тузла будет предпочтительней, так как в варианте с тоссером письмо попадет в лооп. и его будет достаточно сложно выявить (если оно было ошибочно классифицировано, чтобы его вернуть юзеру) а в тузле, весь спам будет складываться в ящик и при желании его легко можно забрать поп3 клиентом у Eserv-a
И RTFM, и STFW, и много еще других грозных слов. Чем выступать, сели и написали бы сами, для тех, кто как и я не знает английского (представляете, сейчас среди системщиков, и иногда даже не самых плохих, есть люди, не знающие этого языка). И мы были бы тебе очень благодарны.
написать что?! Настройку вы вроде описали, по поводу фильтрования писем я добавил. Может было бы не плохо это все соединить. Сегодня сделаю страничку на bitrix.eserv.ru
А что написать — так про нюансы, вроде того, который я упустил.
С уважением, Servini.
Вообще это нормальное явление для страниц, выданных в ответ на POST какой-нибудь формы. Если браузер сохранил её у себя в кэше надолго, почему бы ей не устареть? А "Обновить" для таких страниц он сам не делает, и объясняет, почему.
При запуске программы новым ярлыком она красиво сваливается в трей и не отсвечивает в панели задач. Но при этом она почему-то не хочет ходить на сервер провайдера по вызовам от задания POP3RECV. Вылечилась эта беда заменой нового ярлыка на старый (без буковки "w"). Пока все.
Ярлычка в трее наблюдаю.
Управляю POPfile с удаленной машины. Интерфейс русский.
Замечено, что при входе с локальной машины ввод пароля затруднен (пока не введешь по русски- ошибка, затем вход нормальный).
Назрела пора ввести раздел устойчивых решений.
ОС-Софт — железо.
Раздел явно привлечет внимание, но точки зрения авторов, пользователей, провайдеров могут не совпадать.
С уважением,
Как это?
Прикручивание eserv через pop3recv к popfile технически понятно, а как это наладить административно? Не могу проводить эксперименты на поступающей почте компании, поскольку не ясны результаты. Что сделает popfile после ПЕРВОГО обращения к pop3 ящику? Что собственно вообще происходит в результате его деятельности, если я еще ничего нигде в его конфигурации кроме порта 9090 не менял?
Если весь программный алгоритм реализован на перле, значит его можно и без перла забабахать и встроить прям-таки в pop3recv?
Или в почтовый клиент?
Никаких изменений не увидишь. В случае классификации письма как спама об этом появится отметка в теме письма и в заголовке X-Text-Classification, если ты, конечно создал соответствующее ведро. Если ни одного ведра нет неизвестно что будет, я не проверял. В любом случае POPFile не удаляет письма вообще, и его введение можно проводить на "горячую", даже без перезагрузки сервера.
В каталоге его установки лежит лог. Там все ходы записаны.
Можно, но кто это будет делать?
И чем такое решение лучше? Не говоря уж о том, сколько сил нужно приложить, чтобы просто сделать не хуже: PopFile пишут 6 человек (непосредственно; не считая таких как я, которые патчи изредка им присылают). А если посчитать тех разработчиков, которые писали для Perl модули, используемые в PopFile, и т.д. Стоит ли переделывать то, что уже сделано хорошо, дается даром и продолжает развиваться? Есть только одна веская причина, по которой стоило бы переписать PopFile на другом языке — производительность, остальные второстепенные и решаемы другими способами (я уже описывал все это в другой нити обсуждения здесь). Проблема производительности встает далеко не у всех и далеко не сразу — у меня она возникла только через год, а среди пользователей PopFile жалуются на это очень немногие. И тем не менее и эту проблему они решают сейчас.
+OK POP3 POPFile (v0.20.0) server ready
USER xxxx.ruxxxxxx
-ERR can't connect to xxxx.ru:110
QUIT
+OK goodbye
0
Однако запуск с помощью perl, а не wperl ничего не изменил...
Подскажите пожалуйста где поискать ответ.
Коннектится?
И еще, ведь с этой же машины EServ/2 нормально почту забирает...
# Connect to the real mail server on the standard port
$mail = IO::Socket::INET->new(
Proto => "tcp",
PeerAddr => $hostname,
PeerPort => $port );
Т.е. если это ошибка, то перла, а не POPfile. Единственное, что стоит еще попробовать — это получить код ошибки от перла. Поищу, где это вставить, чтобы увидеть.
"POPFile\Proxy\Proxy.pm" так:
(Добавлено Timeout...)
а на страницу ниже
(Добавлено ERROR)
После этого перезапустите POPfile и попробуйте соединиться. Необязательно почтовым клиентом. Можно просто telnet localhost локальный_порт_popfile и там набрать
USER mail.ru:user
proxy изменил, при попытке коннекта из телнета: ... ERROR: Invalid argument.
Про Unknown error совсем непонятно. А Invalid argument у меня выдает, только если указать несуществующий хост.
В общем, буду копать.
Почесал репу и подумал: а ты ставил версию 0.20 с нуля? Если да, то попробуй так, как делал я: Скачать виндовую версию 0.18, поставить, поднастроить слегка, затем 0.19 поставить, а потом без деинсталляции, поверх, запихнуть 0.20 из архива ас-а. У меня после этого perl.exe работает. Я понимаю, что это не выход, точнее не правильный выход, но все же.... Да, какие у тебя Винды там стоят? У меня W2K SP3... Ну и заплатки некоторые...
И попробуйте все-таки мой отладочный дамп (2DUP TYPE CR) вставить. Может найдем что-то особенное, что я не учел в работе с перловым XMLRPC.
http://multi-trade.com.ua/checkmail
Как получить анекдот шефу?
12.03 09:25:11 & POP3.Check (1)
12.03 09:25:11 & POP3.RetrieveHeader 1 True anekdot-daily-bounces@anekdot.ru
12.03 09:25:11 — SMTPCheck (anekdot-daily-bounces@anekdot.ru) Friend: *.ru
12.03 09:25:11 & POP3.CheckSender 1 — Friend: *.ru
12.03 09:25:11 & POP3.CheckRecipients 1 — User is unknown: <anekdot-daily@lists.cityline.ru>
12.03 09:25:11 & POP3.Disconnect ...
Это печальный факт, применяются списки широко.
Сheckmail2+POPfile+Mchecker7
Скорее всего на том конце список рассылки...
12.04 09:31:04 & POP3.Prepare ...
12.04 09:31:04 & POP3.Connect ...
12.04 09:31:05 & POP3.Check (2)
12.04 09:31:05 & POP3.RetrieveHeader 1 True anekdot-daily-bounces@anekdot.ru
12.04 09:31:06 — SMTPCheck (anekdot-daily-bounces@anekdot.ru) Friend: anekdot-daily-bounces@anekdot.ru
12.04 09:31:06 & POP3.CheckSender 1 — Friend: anekdot-daily-bounces@anekdot.ru
12.04 09:31:06 & POP3.CheckRecipients 1 — User is unknown: <anekdot-daily@lists.cityline.ru>
12.04 09:31:06 @ SMTP.Prepare ...
12.04 09:31:06 @ SMTP.Connect Socket Error # 10061
Connection refused.
Поправка,
POpFile встанет! если его использовать как SMTP proxy!
(в этом случае почту будет отображаться в статистике и ее можно будет перекласиифицировать через обычный веб интерфейс)
Поищите по форму, где то данный вопрос уже поднимался
Я баран. Признаю это прилюдно. Причем не просто баран, а агрессивный и опасный для общества. Этих фокусов с заменой wperl на perl можно было бы избежать, если бы ваш покорный слуга (баран, как выяснилось потом) посмотрел бы вовремя логи файрвола. Который просто, и в соответствии с моими же настройками, запрещал программе wperl обращаться к внешним почтовикам. Приношу свои извинения за вселенскую глупость, и за потраченное ac-ом время на попытки ответить на мой тупой вопрос.
Все бы ничего, но я стал давать эти советы другим людям, вводя тем самым их в заблуждение. Каюсь, бью себя головой в грудь, обещаю исправиться.
Кстати, о PopFile: выпустил новый http://www.eserv.ru/EservPopfileRC4
Он (PopFile) тоже последнее время голову морочит сменой баз, API, формата конфига и т.д. Но все-таки остается лучшим в своем классе
Кто ходит по dial-up в pop3recv.cmd не упускайте ключ -dial
rem Если надо дозвониться (checkmail2 сам звонить не умеет), agents\pop3recv.exe -dial -d -dw -s 2 -u 3 -w 4
иначе будете получать спам...
X-Text-Classification: spam , указывал не просто название ведра но и ещё оценку Baes-a например :
X-Text-Classification: spam 88.5% в принципе это возможно?
Находим в исходнике Bayes.pm соответствующий кусок
# Add the XTC header
$msg_head_after .= "X-Text-Classification: $classification$crlf" if ( ( $xtc_insertion )...
и правим, добавляем по вкусу. Или, если копать исходники самим некогда, то жмём на линк request feature в интерфейсе popfile.
http://multi-trade.com.ua/checkmail/
http://multi-trade.com.ua/checkMail/index.html
OS: Windows 2000 Server
FireWall: Kerio WinRoute Firewall 5.1.10
Сheckmail2: Build 2.50.7.259
От чего страдаем:
Всплывающее окно приложения: checkmail2.exe — Ошибка приложения : Ошибка при инициализации приложения (0xc0000142). Для выхода из приложения нажмите кнопку "ОК".
Падает примерно 1 раз за 3 дня.
Лечится только перезагрузкой
Сталкивался кто-нибудь с подобным?
Давно искал антиспам для сервера; пока что у меня стоит "сердитый" самодельный антиспам. Ессно, мне от антиспама нужна только одна вещь: чтобы он принял сообщение и вернул его отмеченным как спам (или не отмеченным), в виде файла.
Внимание, вопрос. Как мне для этой цели настроить PopFile?
Спасибо.
Вы можете дать конкретную ссылку? Что именно скачать, в каком месте, в каком файле есть код для примера? Инструкция по установке PopFile для такого случая?
Мой майл-сервер написан на С++.
Скачать надо сборку POPfile и дистрибутив Eserv/3. Код связки находится в CommonPlugins\plugins\popfile\index.f
Хотя и в самом POPfile, наверное, где-то есть описание работы по XMLRPC.
А как быть, если у меня С++ ?
Что делать? .. Это скорее вопрос к Достоевскому. Со своей колокольни могу лишь посоветовать: а) транслировать forth в си б) открыть исходники PF, посмотреть реализацию интерфейса XMLRPC и написать свой модуль с 0-ля.
P.S. а гугл ничего не подсказал? Вполне может быть, что кто-то реализовывал данное на сях.
Попытался установить PopFile в режиме SMTP Server-а. Получил большую фигу. Вроде правильно всё настроил, вроде запускается. Но:
1) не обрабатывает сообщения.
2) сообщения не доходят до моего майл-сервера, т.е. мой майл-сервер ничего не получает вообще.
2) Я совсем не улавливаю при чем тут Есерв ....
Более того, мне совсем не понятно, почему просто не набрать в Google запрос вида: "XML RPC c++" где первая же ссылка ведет на описание с примерами на си и с++. Дальше всего лишь надо посмотреть в исходниках PF описание его API и прикрутить его с своему модулю.
1) Ну, прокси, я неточно выразился. Идея была (как я её понял) в том, чтобы PopFile слушал (listening) порт 25 и передавал по цепочке моему майл-серверу. Но что-то не вышло.
2) Действительно, почти ни при чем. Только как пример связи с API PopFile.
Для кого велосипед, а для кого дело новое. Я вообще не знал раньше, что сиё такое XML RPC, хотя с SOAPом имел дело.
Идея здравая, но разбираться надо, ох, разбираться. Утверждается, что это ещё проще, чем SOAP, что ж, посмотрим.
PopFile реагирует на HELO/EHLO однако связаться с моим сервером для выдачи echo_response не может.
Вот моя конфигурация (popfile.cfg)
А вот логи:
Хотя я ошибку вижу:
Видимо, ваш почтовый сервер слушает не на порту 1081. Или, в соответствии с параноидальными настройками, не принимает подключения с 127.0.0.1.
pig, вторая из ваших версий. Там нужно было указать адрес компа в локальной сети, т.е. 192.168.10.XX
Уже фильтрует и набирает базу.
Теперь будет дело техники. Удалять СПАМ-письма прямо на сервере не составит труда.
Есть только одна претензия к фильтрации: не фильтрует пустые сообщения с пустым Subject-ом.
Как указать, чтобы фильтр помещал их в определённое ведро, — не знаю.
Есть ещё одна проблема, гораздо серьёзнее.
PopFile регулярно "вешает" процесс SMTP-приёма сообщений. Перезапускаю PopFile без перезапуска моего сервера — всё начинает работать. Версия у меня 0.22.2.0 от 2003 года. Может, есть что-то посвежее?
Будем смотреть, как она себя поведёт.
У меня пока полсуток, полёт нормальный.
Есть там какой-то баг, застревает на полуслове при передаче команды в SMTP-сервер...
Сегодня PopFile застрял на
Скорее всего, придётся от него отказываться. Или переделать на С++.
Скорее всего, PopFile нестабильно работает с сокетами. В отличие от моего майл-сервера, использующего MFC классы для работы с сокетами и правильную систему тайм-аут сброса.
Там также используется какой-то тайм-аут, но он встроенный, и я не верю этому "чёрному ящику".
Нельзя писАть программы на PC, используя какой-то суррогантый интерфейс сокет-соединений!
При приёме DATA PopFile не рассчитан на остановку/сброс по тайм-ауту. Он просто зависает. А такая ситуация — тайм-аут при приёме DATA довольно типична.
Надо будет изложить сию проблему на форуме PopFile.
Вопрос только к специалистам: как всё это протранслировать на WinXP? Что для этого надо?
А также сообразить, что ошибка при правке кода приводит к тому, что PopFile просто не запускается!
Но вот я, наконец, внёс поправку, предотвращающую нестабильную работу Proxy (регуляно зависал). Теперь пошёл отсчёт времени. Если система выдержит хотя бы полные сутки...
Буду переписывать байеса на С++.
Попытки своими силами устранить их зависания ни к чему путному не привели.
Грандиозная работа, ничего не скажешь. Я неплохо уже продвинулся, но конца пока не видно. Заодно изучил регулярные выражения и задействовал библиотеку их в С++.
Конечно, не всё ещё переведено, но парсинг майла уже работает, что плюс.
Осталось наладить собственно байес-классификацию.
Да и интерактивную коррекцию-показ (спам-не спам) придётся сделать. Думаю сделать её не на ВЕБ, придётся писАть это дело с начала. Но у меня есть и опыт, и нужные API для этого (например, показ таблиц). С показом собственно майла — что-нибудь придумаю, наверное, в MS MFC есть что-то готовое.
а как насчёт прикручивания POPfile к ESERV2
кхе кхе... а можно попросить сделать инструкцию, или ткнуть в ссылочку, как прикрутить его для SMTP сервера? а MContent же платный вроде продукт?
Да, платный. Но ограничение незарегистрированной версии в максимальном количестве правил. Для использования его в качестве "отлова" спама после PF этого более чем достаточно
Осталось доделать:
Правда, я наблюдал это только в MS Windows, на UNIXе я не проверял.
И — повторюсь — я сейчас перевожу Popfile на С++, чтобы прикрутить к своему майл-серверу, написанному на С++ же.
Я бы не был столь категоричен.
В режиме SMTP-proxy PopFile с acSMTP работал не только сутками, но и неделями без каких-то "периодических зависаний"
В какой системе? В UNIXe? А в Windows вы проверяли?
Я проверял, потому и категоричен.
P.S. вы проверяли со своим почтовым сервером а здесь мы говорим о Eserv/x
Я проверял на WindowsXP Pro. Виснет НЕ по вине моего майл-сервера; без Popfile мой майл-сервер работает надёжно.
Это может быть скрытый баг (НЕ в моём майл-сервере!), который проявляется не во всех случаях.
Как бы не так — несложно!
Есть и там свои ньюансы. И пополнение History ещё надо сделать...
Ряд багов (выявившихся дополнительно!) устранён.
Хотя нет, не всё. Сколько времени я буду устранять ещё имеющиеся баги — оно, т.е. время, покажет. Но уже запущено в практическую работу!
А так работает вполне стабильно, никого и ничего не вешает!
Они просто посылают картинку с текстом и к ней пару случайных фраз!
Фильтр регулярно такие вещи пропускает...
КАКУЮ скачивать?
(можно дать конкретный линк, пока скачал http://www.eserv.ru/download/files/EservPOPFile-RC7-setup.exe)
Хотя можно и RC7 поставить. Всё равно сначала настраивать, а путь установки значения не имеет.
Внес изменения: (вместо стандартного Кода: ['] AddAddress'For' Recipients DoList — S" X-Text-Classification: spam" GetFieldValue S" Spam" COMPARE
IF ['] AddAddress'For' Recipients DoList THEN ). Никаких изменений не происходит. Стал вдумываться. Видимо описка: S" Spam" COMPARE , а надо спам с маленькой буквы: S" spam" COMPARE — раз. Попробовал. Ничего не изменилось. Тогда текст S" X-Text-Classification: spam" заменил на S" X-Text-Classification:" — считаю, что работает функция выбора значения поля X-Text-Classification: (GetFieldValue). И ей в параметр названия поля не надо вставлять и значение этого параметра ("spam". Может я ошибаюсь). Попробовал, и снова все по старому — спамовые письма приходят пользователям, будто этот pop3toss.cfg не вызывается или работает какой-то другой...
Сделал даже "наоборот" :
S" X-Text-Classification:" GetFieldValue S" spam" COMPARE 0=
IF ['] AddAddress'For' Recipients DoList THEN добавир "0=" — противоположное действие (ночью пробовал). И тоже никакой разницы. Прошу помощи.
Да красоты ещё и сравнение сделал регистронезависимым. Пошёл исправлять первоисточник.
Нет, в первоисточнике правильно. Это был испорченный телефон
Точнее, творческая переработка примера.
Кстати, тоже вариант. Проверьте командную строку задания.
['] AddAddress'For' Recipients DoList
Что такое ['] и почему раньше вся эта строка (с [']) бы была по положительной логики (вся корреспонденция доходит), а с проверкой спама, тоже после IF (в истине) тоже доходит. Как я понимаю, должно быть спам — это ложь, и не доходить...
MessageEnd \ старый
." — Msg OK." CR
;
S" agents\pop3rules\pop3rules.f" INCLUDED
S" agents\pop3rules\actions.f" INCLUDED
S" agents\pop3rules\pop3toss.rules" INCLUDED end-rule
а в каталоге \agengs просто:
MessageEnd \ старый
." — Msg OK." CR
; то есть нет строчек с INCLUDED и концом-правила
В Планировщике задание pop3all каждые 2 минуты c командной строкой такой: cmd.exe /c pop3all.bat %TempFile% %Server% файл pop3all.bat содержит пары строчек, каждая на одного пользователя такие
... agents\pop3recv.exe -d -dw -z -o temp\%1.emlpavel -s 127.0.0.1 -p 222 -u %2:Pavel -w пароль agents\Erobot.exe -c agents\pop3toss.cfg -o temp\%1.tosspavel -i temp\%1.emlpavel
... agents\pop3recv.exe -d -dw -z -o temp\%1.emlhelp1c -s 127.0.0.1 -p 222 -u %2:help1c -w дрпароль agents\Erobot.exe -c agents\pop3toss.cfg -o temp\%1.tosshelp1c -i temp\%1.emlhelp1c
... в каталоге C:\PochtaEserv\Program Files\Eserv2\agents находится файл pop3toss.cfg
Указан относительный путь. Темпы создаются и все работает уже 4 месяца... Очень доволен Вашим продуктом... только помогите решить вопрос "с не попаданием выявленного спама пользователям" ПРОШУ ПОМОЩИ. Mcheker — это будет следующий этап. А пока хотелось в лоб по Вашим рекомендациям.
Или нет, подождите. Добавьте отладочную печать:
В новых файлах temp\*.toss* будет вывод классификации для каждого письма. Посмотрим, что там происходит.
Это ведь настраиваемый признак? Проверьте в настройках POPfile, там пробелов в начале/конце не затесалось?
25.11.180082421.tosshelp1c mail\spool\to_check\tjahjadi4824@auracom.com!POP3!180087609!1
X-Text-Classification: spam
)
( This is configuration file for Erobot. With this config Erobot will extract messages from result of Pop3recv.exe and place messages to the spool folder. agents\Erobot.exe -c agents\pop3toss.cfg -i news\pop3.file -o temp\log.file)
VARIABLE Senders ( список отправителей )
VARIABLE CurrentMessage ( хэндл текущего сообщения )
: AddAddress'For' ( rcpt_node — )
node NodeValue XCOUNT
." For: " 2DUP TYPE CR
S" For: " CurrentMessage @ WRITE-FILE THROW
CurrentMessage @ WRITE-FILE THROW
LT LTL @ CurrentMessage @ WRITE-FILE THROW
;
: /_ ( addr u — )
0 ?DO DUP I + C@ [CHAR] / = IF [CHAR] _ OVER I + C! THEN LOOP DROP
;
: <_ ( addr u — )
0 ?DO DUP I + C@ [CHAR] < = IF [CHAR] _ OVER I + C! THEN LOOP DROP
;
: "_ ( addr u — )
0 ?DO DUP I + C@ [CHAR] " = IF [CHAR] _ OVER I + C! THEN LOOP DROP
;
: WriteToSpool ( addr u — )
2DUP /_
2DUP <_
2DUP "_
NewSpoolFile 2DUP TYPE CR R/W CREATE-FILE-NOT-SHARED
IF DROP
S" bad_from_addr@local" NewSpoolFile 2DUP TYPE CR
R/W CREATE-FILE-NOT-SHARED
IF DROP
." Can't create spool file! Bye." CR BYE
THEN
THEN
CurrentMessage !
S" To:" GetFieldValue Recipients ParseRcpt
S" Cc:" GetFieldValue Recipients ParseRcpt
S" Received:" GetFieldValue Recipients ParseRcpt(For)
S" X-Deliver-To:" GetFieldValue Recipients ParseRcpt
S" X-Rcpt-To:" GetFieldValue Recipients ParseRcpt
S" Envelope-To:" GetFieldValue Recipients ParseRcpt
." X-Text-Classification: " S" X-Text-Classification:" GetFieldValue TYPE CR
S" X-Text-Classification:" GetFieldValue S" spam" COMPARE-U
IF ['] AddAddress'For' Recipients DoList THEN
CurrentMessage @ WriteLastMessage
;
: MessageEnd
S" From:" GetFieldValue Senders ParseRcpt
Senders @ ?DUP
IF NodeValue XCOUNT ELSE S" _@_" THEN
WriteToSpool
Senders FreeList
Recipients FreeList
MessageEnd \ старый
." — Msg OK." CR
;
единственное килица "старый" и в начале "список получ..." в far-e идут кракозябрами и клавишей F8 нормально переключаются...(уж все говорю что есть) ПРОШУ ПОМОЩИ
Адресаты не перечислены — значит, письмо дальше поехало с пустым списком получателей. Как было сказано где-то возле первоисточника, письма без получателей, закачанные через POP3, начиная с какого-то билда не сносятся в loop, а доставляются адресату по умолчанию (который назначен на нераспознанную почту). Посмотрите в логе тоссера, как обрабатывалось письмо mail\spool\to_check\tjahjadi4824@auracom.com!POP3!180087609!1.
Я по-моему понял... Ваша подсказка навела на мысль::: Я и смотрел только postmaster и arhive — и спам видимо только и им валился.... Сейчас посмотрел у своего юзера (help1c@polartv.ru), а там все чисто... СПАСИБО (в логе тоссера только postmaster и arhive)
Вообще не факт, что письмо размножается у вас. Надо проверить, сколько раз письмо выкачивалось из ящика. Ещё надо проверить, все ли копии писем с одинаковым Message-ID.
И последнее — POPfile тут с большой вероятностью ни при чём, это особенность работы с внешними ящиками. Когда у письма несколько адресатов, оно размножается именно во внешних ящиках. Правда, размножение должно быть не квадратичное, а линейное, но тут могут вмешаться неучтённые факторы, которые мне поутру представить сложно.
Многократного чтения из ящиков у вас быть вроде как не должно, поскольку агент в батнике запускается с ключом -z — то есть, он может быть только в одном экземпляре. В общем, ничего не остаётся, кроме как собрать все получившиеся копии одного письма и раскручивать историю их появления от конца к началу.