|
VBA Outlook анализ темы входящих, при наличии ключа, анализировать число и класть в папку
|
|||
---|---|---|---|
#18+
Привет всем. Прежде чем зарегистрироваться я много читал этот форум, искал, пытался сделать то, что мне нужно самостоятельно, но часто даже в рабочих примерах, что-то идёт не так, а где-то темы брошены. Но некий вектор я определил. Потому решил сделать свою тему, где будет решения задачи от и до. Если никто не поможет, то я постараюсь сам решить. Но с помощью гуру-VBA всё же это было быстрее. Итак моя как я считаю интересная задача. И её решение не просто задачка, а совершенно практичная вещь, которая как начнёт помогать мне и людям уже завтра, так и думаю привлечёт новых людей на форум. Кто будет какой код предлагать, пишите ваши данные для копирайта. Всех причастных добавлю и так буду эксплуатировать. Есть корпоративный почтовый сервер, на нём стоит спам-фильтр. Работает он достаточно неплохо, но случаются ложно-позитивные срабатывания. Нужен небольшой скрипт помогающий с этим жить. При срабатывании правил спама, полученной письмо набирает баллы, за каждое подозрительное содержимое или источник. Бесплатная почта +2 балла, слова "купить недорого" например ещё 2 балла и т.д. таким образом спам письма набирают баллы, после например 8 (настраивается) - письмо становится спамом и помечается специальном тегом с количеством баллов внутри. Ниже примеры, которые полностью объяснят как это выглядит: пример типичных заголовков спама *****[SPAM(8.0 )]***** Юридические услуги в Литве *****[SPAM(12.3 )]***** Любые города России и отрасли *****[SPAM(32.6 )]***** Высококачественные изделия из лиственницы для внутренней отделки помещений. Итак: 1) Есть несколько учётных записей IMAP. Нужно анализировать в каждом ящике входящие письма на наличие куска "*****[SPAM(". Если его нет - ничего не делаем. И письмо должно остаться НЕ прочитанным. 2) Если кусок "*****[SPAM(" есть в заголовке нового входящего письма, то приступить к анализу цифр находящихся между "*****[SPAM(" и ")]*****" кусками. Т.е. получаем количество баллов из загловка, как число, которое можно сравнивать с условиями. 3) Сравнить это содержимое с интервалами: от 8.0 до 15.0 - письмо перемещается в IMAP папку учётной записи с названием SPAM_8 и в этой папке остаётся не прочитанным от 15.0 до 30.0 - письмо перемещается в IMAP папку учётной записи с названием SPAM_15 и в этой папке становится прочитанным от 30.0 до 999.0 - письмо удаляется как будто его удалил пользователь (т.е. как штатными средствами). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2015, 23:44 |
|
VBA Outlook анализ темы входящих, при наличии ключа, анализировать число и класть в папку
|
|||
---|---|---|---|
#18+
Забыл добавить. VBA 6.5 (Outlook 2007). Тема с форума, довольно близкая к моим задачам, вот эта: обработка всех входящих писем Outlook Исходный пример у меня не работает, спотыкается на Код: plaintext
а пример про "сохранения вложений", идущий четвёртым постом, попробую капнуть глубже. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2015, 23:53 |
|
VBA Outlook анализ темы входящих, при наличии ключа, анализировать число и класть в папку
|
|||
---|---|---|---|
#18+
Прикинул, что это может загружать процессор и давать паузы при приходе писем, а спама валиться так то много, просто сейчас он никак не доходит до людей. Плюс обнаружил, что в почтовом сервере есть подключаемые механизмы, которые позволяют делать тоже самое на серверной стороне. Есть язык сортировки писем sieve (RFC3028), который существует уже с 2001 года и прекрасно делает подобную задачу. Потому написание подобной программы в данном случае не очень рационально. Хотя из учебных целей, я может быть и занялся. Будет время, напишу как я бы это реализовал. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 01:06 |
|
|
start [/forum/topic.php?fid=60&msg=39030446&tid=2155819]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
65ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 156ms |
0 / 0 |