View previous topic :: View next topic |
Author |
Message |
OMEN Subscriber
Joined: 06 Jul 2010 Posts: 22 Location: Жуковский
|
Posted: 26 Mar 2015 11:26 (Thu) Post subject: Как получить значение заголовка в правиле обработки? |
|
|
Здравствуйте.
Возможно ли в правиле обработки получить значение какого-либо заголовка письма, например так:
FROM:"<значение_заголовка_X-KLMS-AntiSpam-Envelope-From>"
Заметил у себя, что у спама практически всегда заголовки FROM и X-KLMS-AntiSpam-Envelope-From отличаются. Хочу такое правило создать, которое направляет письмо в спам, когда эти заголовки у него различаются.
_________________ Рег. номер: ***62DE0 |
|
Back to top |
|
|
NAMOR CMS Developer
Joined: 15 Oct 2005 Posts: 1079
|
Posted: 26 Mar 2015 12:12 (Thu) Post subject: |
|
|
Такой возможности нет.
Если в этих полях отличаются домены, то можно создать конкретные правила для часто встречающихся доменов. Это поможет отсечь хотя бы часть такого спама.
|
|
Back to top |
|
|
OMEN Subscriber
Joined: 06 Jul 2010 Posts: 22 Location: Жуковский
|
Posted: 26 Mar 2015 13:37 (Thu) Post subject: |
|
|
NAMOR wrote: | можно создать конкретные правила для часто встречающихся доменов. Это поможет отсечь хотя бы часть такого спама. | Это понятно.
Домены как правило совпадают, а вот поддомены зачастую различаются.
Если можно, добавьте в планы такую возможность.
_________________ Рег. номер: ***62DE0 |
|
Back to top |
|
|
NAMOR CMS Developer
Joined: 15 Oct 2005 Posts: 1079
|
Posted: 26 Mar 2015 15:32 (Thu) Post subject: |
|
|
Хорошо, записал ваше предложение. Со временем постараемся реализовать.
|
|
Back to top |
|
|
OMEN Subscriber
Joined: 06 Jul 2010 Posts: 22 Location: Жуковский
|
Posted: 06 Apr 2015 16:34 (Mon) Post subject: |
|
|
А такое правило обработки спама не может помочь?
Code: | *From:"[<]([^>]*)[>]" & *X-KLMS-AntiSpam-Envelope-From!:".?\1.?" |
_________________ Рег. номер: ***62DE0 |
|
Back to top |
|
|
NAMOR CMS Developer
Joined: 15 Oct 2005 Posts: 1079
|
Posted: 06 Apr 2015 18:06 (Mon) Post subject: |
|
|
Нет. Ссылка "\1" действует только в пределах того регулярного выражения, в котором она используется.
|
|
Back to top |
|
|
OMEN Subscriber
Joined: 06 Jul 2010 Posts: 22 Location: Жуковский
|
Posted: 07 Apr 2015 12:04 (Tue) Post subject: |
|
|
NAMOR wrote: | Нет. Ссылка "\1" действует только в пределах того регулярного выражения, в котором она используется. | Эх, так жаль... Может тоже доработаете, например так очень гибко было бы: Code: | *{From:"[<]([^>]*)[>]" & X-KLMS-AntiSpam-Envelope-From!:".?\1.?"} |
_________________ Рег. номер: ***62DE0 |
|
Back to top |
|
|
NAMOR CMS Developer
Joined: 15 Oct 2005 Posts: 1079
|
Posted: 07 Apr 2015 17:38 (Tue) Post subject: |
|
|
Такая доработка будет нарушением стандарта регулярных выражений. Если уж делать, то что-то вроде:
Code: | X-KLMS-AntiSpam-Envelope-From!:*From:"..." |
Смысл такой: из значения поля From извлечь строку, соответствующую указанному регулярному выражению, после чего искать эту строку в поле X-KLMS-AntiSpam-Envelope-From. Соответственно, если не удалось извлечь или найти строку, то условие "!:" выполнится.
Если не сложно, приведите несколько примеров пар полей X-KLMS-AntiSpam-Envelope-From и From из "спама" и "неспама".
|
|
Back to top |
|
|
OMEN Subscriber
Joined: 06 Jul 2010 Posts: 22 Location: Жуковский
|
Posted: 07 Apr 2015 18:13 (Tue) Post subject: |
|
|
Во вложении.
Еще важно, чтобы при отсутствии в письме заголовка "X-KLMS-AntiSpam-Envelope-From" правило не срабатывало.
Description: |
|
Download |
Filename: |
examples.zip |
Filesize: |
595 Bytes |
Downloaded: |
2668 Time(s) |
_________________ Рег. номер: ***62DE0 |
|
Back to top |
|
|
NAMOR CMS Developer
Joined: 15 Oct 2005 Posts: 1079
|
Posted: 07 Apr 2015 21:10 (Tue) Post subject: |
|
|
Из примеров стало ясно, что решить вашу задачу, можно уже сейчас, не дожидаясь нашей доработки, пусть и не так элегантно.
Решение:
1. В папке CMS создаём папку Mailbox\<имя основного домена CMS>\spam\.
2. Создаём задание планировщика "Проверить Envelope-From":
[x] Запустить приложение
cmd.exe /d /c echo "%MFrom%" | find /I "%MX-KLMS-AntiSpam-Envelope-From%" || copy Queue\%FileName%.msg Mailbox\%Domain%\spam\ && del Queue\%FileName%.msg
[x] Скрыть окно
[x] Ждать завершения
[x] Принудительно завершить через 30 сек.
Остальные флажки снимаем.
3. В подходящем сортировщике (основном, SMTP или POP3, в зависимости от пути получения такого спама) создаём правило:
[x] Если: X-KLMS-AntiSpam-Envelope-From!:""
[x] Запустить задание: "Проверить Envelope-From"
[x] Ждать завершения
[x] Правило активно
Остальные флажки снимаем.
Всё, теперь письма, в заголовке которых имеется поле X-KLMS-AntiSpam-Envelope-From и у которых значение этого поля не найдено в поле From, будут перемещаться в папку для сбора спама.
Решение проверил, работает.
|
|
Back to top |
|
|
fatemax Subscriber
Joined: 08 Feb 2012 Posts: 10
|
Posted: 18 Apr 2017 16:56 (Tue) Post subject: |
|
|
Решил я воспользоваться подобным решением, но у себя заметил, что у нормальных отправителей %From% соответствует %Return-Path% соответственно пытаюсь сравнить эти два поля. Предполагаю, что должна быть такая команда :
cmd.exe /d /c echo "%MFrom:*^<=^<%" | find /I "%Return-Path:*^<=^<%" || copy Queue\%FileName%.msg Mailbox\%Domain%\spam\ && del Queue\%FileName%.msg
Так как перед адресом в угловых скобках еще пишут название(?) отправителя, то конструкцией *^<=^< убираю все до первой угловой скобки вместе с ней и вставляю только угловую скобку.
Верна ли команда? Правильно ли рассуждаю и может ли помочь сравнение этих полей? Только вот в письме может быть несколько %Return-Path% и с каким будет происходить сравнение не понятно...
|
|
Back to top |
|
|
NAMOR CMS Developer
Joined: 15 Oct 2005 Posts: 1079
|
Posted: 18 Apr 2017 17:48 (Tue) Post subject: |
|
|
fatemax wrote: | Предполагаю, что должна быть такая команда :
cmd.exe /d /c echo "%MFrom:*^<=^<%" | find /I "%Return-Path:*^<=^<%" || copy Queue\%FileName%.msg Mailbox\%Domain%\spam\ && del Queue\%FileName%.msg |
fatemax wrote: | Верна ли команда? |
Нет.
Макрос %MFrom% заменяется значением поля From из заголовка обрабатываемого письма.
Макрос %MFrom:*^<=^<% ничем не заменяется, поскольку такой макрос неизвестен CMS, как и макрос %Return-Path:*^<=^<%.
Почитайте справку программы, раздел "Настройки - Шаблоны - Макросы".
fatemax wrote: | Правильно ли рассуждаю и может ли помочь сравнение этих полей? |
Рассуждаете неправильно, поскольку указанная конструкция работать не будет. Мне она даже сама по себе непонятна.
Может ли помочь сравнение полей — не знаю, поскольку не понял задачу, которую вы решаете.
fatemax wrote: | Только вот в письме может быть несколько %Return-Path% и с каким будет происходить сравнение не понятно... |
Значения полей заголовка с одинаковыми именами объединяются через пробел и в таком виде обрабатываются.
|
|
Back to top |
|
|
|