View previous topic :: View next topic |
Author |
Message |
GrAnd CMS Master
Joined: 21 Oct 2005 Posts: 766 Location: г. Коломна
|
Posted: 03 Apr 2007 16:40 (Tue) Post subject: v2,3| Проверка числа получателей |
|
|
С недавних пор количество засвеченных п/я нашего предприятия достигло таких величин, что в спамерских базах они стали объединяться в группы, и письма стали приходить сразу на 3-4 адреса каждое.
Т.к. крайне редко реально нужное письмо отправляется такому числу получателей, то этот косвенный признак можно было бы использовать для отсечения спама. Однако в CMS пока не реализован механизм удаления и перенаправления писем с большим количеством получателей. Даже если установить опцию "Максимальное число получателей письма ("Сервисы|SMTP|Дополнительно"), то это приведет лишь к тому, что лишние получатели будут проигнорированы и письмо будет доставлено нескольким получателям, находящимся в начале списка.
Вот почему я написал маленькую консольную программку, которая анализирует число получателей в .inf-файле и возвращает его в коде возврата. Этот код может быть далее проанализирован в пакетном файле и на его основании письмо либо удаляется, либо переносится в нужную папку. Если в .inf-файле не указан получатель, то возвращается нулевой код.
Программа работоспособна начиная с версии CMS 2.04, т.к. использует библиотеку работы с файлами в формате XML, а более ранние версии CMS использовали формат файлов, несколько отличающийся от XML.
Ниже приводится сама программа, ее исходник на Delphi и пример пакетного файла.
Библиотеку SimpleXML можно скачать отсюда.
Description: |
Утилита определения числа получателей. |
|
Download |
Filename: |
RcptNum.rar |
Filesize: |
70.6 KB |
Downloaded: |
4628 Time(s) |
_________________ Все, что началось хорошо, закончится плохо.
Все, что началось плохо, закончится еще хуже.
Если вам кажется, что все идет хорошо, значит вы чего-то не замечаете.
Если все закончилось хорошо, то, значит, это еще не конец! |
|
Back to top |
|
|
GrAnd CMS Master
Joined: 21 Oct 2005 Posts: 766 Location: г. Коломна
|
Posted: 04 Apr 2007 14:52 (Wed) Post subject: |
|
|
Сегодня я написал более-менее цивильный пакетный файл.
Теперь он создает запись в .log-файле только если пост был удален. В отчет заносится время удаления, название обработанного .inf-файла и его содержимое.
На каждую дату создается свой собственный .log-файл.
Команды пакетника написаны так, что предполагают размещение утилиты подсчета получателей и файла отчета в корневой папке CMS. Однако, IMHO, лучше под утилиты (думаю, что эта - не последняя) создать собственную подпапку, а в ней - подпапку для отчетов. У себя я так и сделал.
Кстати, даже если утилит будет несколько, удобно будет использовать единый файл отчета для всех.
Description: |
Новый, улучшенный пакетный файл. |
|
Download |
Filename: |
RcptNum.rar |
Filesize: |
332 Bytes |
Downloaded: |
3857 Time(s) |
_________________ Все, что началось хорошо, закончится плохо.
Все, что началось плохо, закончится еще хуже.
Если вам кажется, что все идет хорошо, значит вы чего-то не замечаете.
Если все закончилось хорошо, то, значит, это еще не конец! |
|
Back to top |
|
|
GrAnd CMS Master
Joined: 21 Oct 2005 Posts: 766 Location: г. Коломна
|
Posted: 23 Apr 2013 10:32 (Tue) Post subject: |
|
|
Сегодня обратил внимание, что данный батничек не работает уже достаточно давно - с момента перехода на шлюзе с Win2K Server на Win2K3 Server.
Дело в разном формате даты, выдаваемой по командн date /t - в Win2K дата предварялась буквенным обозначением дня недели.
Поэтому строчку
FOR /F "delims=. tokens=1,2,3" %%l IN ("%%j")
надо заменить на строчку
FOR /F "delims=. tokens=1,2,3" %%l IN ("%%i")
- букву j заменить на i.
Необходимость проверки работоспособности скрипта была вызвана тем, что в последнее время MTA бомбардируется большим числом писем в несколько (5-10) адресов каждое. Адреса выбираются из списка имен и должностей по алфавиту, поэтому некоторые просачиваются. Не помогает даже проверка PTR - рассылка идет в т.ч. с зарегистрированных доменов.
Кстати, если кто не догадался, то число 3 в строке
IF ERRORLEVEL 3 GOTO Invalid
означает количество получателей, начиная с которого письма следует отсеивать. Обычно, в 3 и более адресов письма идут крайне редко.
_________________ Все, что началось хорошо, закончится плохо.
Все, что началось плохо, закончится еще хуже.
Если вам кажется, что все идет хорошо, значит вы чего-то не замечаете.
Если все закончилось хорошо, то, значит, это еще не конец! |
|
Back to top |
|
|
GrAnd CMS Master
Joined: 21 Oct 2005 Posts: 766 Location: г. Коломна
|
Posted: 15 Oct 2013 11:29 (Tue) Post subject: |
|
|
Данная утилита является морально устаревшей, т.к. с появлением возможности задавать в условиях антиспама регулярные выражения стало эффективнее и проще подсчитывать число получателей по полю "To:" или "Cc:" письма при помощи правила черного списка
Code: | *To:"(@([-\w]+\.)+[-\w]+)(.+\1){N}"|*Cc:"(@([-\w]+\.)+[-\w]+)(.+\1){N}" |
где вместо N следует подставить максимально разрешенное число получателей в этих полях.
Иногда, правда, возникают ситуации, когда в полях "To:"и "Cc:" получателей перечислено мало, а в команде "RCPT TO:" их гораздо больше. В этом случае утилита сработала бы лучше. Но такие случаи редки и единичны.
Поэтому от данной утилиты можно с легким сердцем отказаться. Это позволит выявлять спам на более раннем этапе, и несколько снизить объем логов.
Побочным эффектом является, как ни странно, небольшое общее снижение количества спама. Видимо, ранее при удалении писем утилитой, оповещение об этом никуда не поступало и спамботы считали, что рассылка прошла. Теперь же им направляется сообщение об отклонении письма антиспамом. Возможно, в некоторых случаях это приводит к исключению адресов из списка рассылок.
_________________ Все, что началось хорошо, закончится плохо.
Все, что началось плохо, закончится еще хуже.
Если вам кажется, что все идет хорошо, значит вы чего-то не замечаете.
Если все закончилось хорошо, то, значит, это еще не конец! |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|