Courier Mail Server Forum Index Courier Mail Server
www.courierms.ru
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Как получить значение заголовка в правиле обработки?

 
Post new topic   Reply to topic    Courier Mail Server Forum Index -> Courier Mail Server 3.xx
View previous topic :: View next topic  
Author Message
OMEN
Subscriber
Subscriber


Joined: 06 Jul 2010
Posts: 22
Location: Жуковский

PostPosted: 26 Mar 2015 11:26 (Thu)    Post subject: Как получить значение заголовка в правиле обработки? Reply with quote

Здравствуйте.
Возможно ли в правиле обработки получить значение какого-либо заголовка письма, например так:
FROM:"<значение_заголовка_X-KLMS-AntiSpam-Envelope-From>"

Заметил у себя, что у спама практически всегда заголовки FROM и X-KLMS-AntiSpam-Envelope-From отличаются. Хочу такое правило создать, которое направляет письмо в спам, когда эти заголовки у него различаются.

_________________
Рег. номер: ***62DE0
Back to top
View user's profile Send private message
NAMOR
CMS Developer


Joined: 15 Oct 2005
Posts: 1079

PostPosted: 26 Mar 2015 12:12 (Thu)    Post subject: Reply with quote

Такой возможности нет.
Если в этих полях отличаются домены, то можно создать конкретные правила для часто встречающихся доменов. Это поможет отсечь хотя бы часть такого спама.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
OMEN
Subscriber
Subscriber


Joined: 06 Jul 2010
Posts: 22
Location: Жуковский

PostPosted: 26 Mar 2015 13:37 (Thu)    Post subject: Reply with quote

NAMOR wrote:
можно создать конкретные правила для часто встречающихся доменов. Это поможет отсечь хотя бы часть такого спама.
Это понятно.
Домены как правило совпадают, а вот поддомены зачастую различаются.
Если можно, добавьте в планы такую возможность.

_________________
Рег. номер: ***62DE0
Back to top
View user's profile Send private message
NAMOR
CMS Developer


Joined: 15 Oct 2005
Posts: 1079

PostPosted: 26 Mar 2015 15:32 (Thu)    Post subject: Reply with quote

Хорошо, записал ваше предложение. Со временем постараемся реализовать.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
OMEN
Subscriber
Subscriber


Joined: 06 Jul 2010
Posts: 22
Location: Жуковский

PostPosted: 06 Apr 2015 16:34 (Mon)    Post subject: Reply with quote

А такое правило обработки спама не может помочь?
Code:
*From:"[<]([^>]*)[>]" & *X-KLMS-AntiSpam-Envelope-From!:".?\1.?"

_________________
Рег. номер: ***62DE0
Back to top
View user's profile Send private message
NAMOR
CMS Developer


Joined: 15 Oct 2005
Posts: 1079

PostPosted: 06 Apr 2015 18:06 (Mon)    Post subject: Reply with quote

Нет. Ссылка "\1" действует только в пределах того регулярного выражения, в котором она используется.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
OMEN
Subscriber
Subscriber


Joined: 06 Jul 2010
Posts: 22
Location: Жуковский

PostPosted: 07 Apr 2015 12:04 (Tue)    Post subject: Reply with quote

NAMOR wrote:
Нет. Ссылка "\1" действует только в пределах того регулярного выражения, в котором она используется.
Эх, так жаль... Может тоже доработаете, например так очень гибко было бы:
Code:
*{From:"[<]([^>]*)[>]" & X-KLMS-AntiSpam-Envelope-From!:".?\1.?"}

_________________
Рег. номер: ***62DE0
Back to top
View user's profile Send private message
NAMOR
CMS Developer


Joined: 15 Oct 2005
Posts: 1079

PostPosted: 07 Apr 2015 17:38 (Tue)    Post subject: Reply with quote

Такая доработка будет нарушением стандарта регулярных выражений. Если уж делать, то что-то вроде:
Code:
X-KLMS-AntiSpam-Envelope-From!:*From:"..."

Смысл такой: из значения поля From извлечь строку, соответствующую указанному регулярному выражению, после чего искать эту строку в поле X-KLMS-AntiSpam-Envelope-From. Соответственно, если не удалось извлечь или найти строку, то условие "!:" выполнится.

Если не сложно, приведите несколько примеров пар полей X-KLMS-AntiSpam-Envelope-From и From из "спама" и "неспама".
Back to top
View user's profile Send private message Send e-mail Visit poster's website
OMEN
Subscriber
Subscriber


Joined: 06 Jul 2010
Posts: 22
Location: Жуковский

PostPosted: 07 Apr 2015 18:13 (Tue)    Post subject: Reply with quote

Во вложении.
Еще важно, чтобы при отсутствии в письме заголовка "X-KLMS-AntiSpam-Envelope-From" правило не срабатывало.



examples.zip
 Description:

Download
 Filename:  examples.zip
 Filesize:  595 Bytes
 Downloaded:  2668 Time(s)


_________________
Рег. номер: ***62DE0
Back to top
View user's profile Send private message
NAMOR
CMS Developer


Joined: 15 Oct 2005
Posts: 1079

PostPosted: 07 Apr 2015 21:10 (Tue)    Post subject: Reply with quote

Из примеров стало ясно, что решить вашу задачу, можно уже сейчас, не дожидаясь нашей доработки, пусть и не так элегантно.

Решение:

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
View user's profile Send private message Send e-mail Visit poster's website
fatemax
Subscriber
Subscriber


Joined: 08 Feb 2012
Posts: 10

PostPosted: 18 Apr 2017 16:56 (Tue)    Post subject: Reply with quote

Решил я воспользоваться подобным решением, но у себя заметил, что у нормальных отправителей %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
View user's profile Send private message
NAMOR
CMS Developer


Joined: 15 Oct 2005
Posts: 1079

PostPosted: 18 Apr 2017 17:48 (Tue)    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    Courier Mail Server Forum Index -> Courier Mail Server 3.xx All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
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