Коллеги, мне кажется я не совсем корректно описал проблему и повел вас по
ложному следу.
Попробую на конкретном примере.
И так, есть 2 файла:
1-й - это архив 1.7z, который содержит файл 1.scr.
2-й - это текстовый файл 123.txt

И далее 3 варианта писем с результатами срабатывания ACL:
1--й - отправляем письмо только с аттачем 1.7z - ACL срабатывает
2-й - создаем пустое письмо и сначала аттачим 1.7z  а потом 123.txt  - ACL
не срабатывает
3-й - создаем пустое письмо и сначала аттачим 123.txt а потом 1.7z - ACL
срабатывает.

Таким образом переменная acl_m_attach_cut принимает то или иное значение на
основе последнего проверенного аттача.
Возможно проблема в том что я обнуляю переменную acl_m_attach_cut
непосредственно
перед этим ACL, т.е. вся конструкция выглядит так:

 warn log_message = mime_filename = $mime_filename
       set acl_m_attach_cut = 0


  warn message = This message contains dangerous file(s) in ZIP, RAR, 7z
attachment.
       condition = ${if <{$message_size}{500K}{1}{0}}
       condition = ${if match {$mime_filename} {\N(?i)\.(zip|rar|7z)$\N}}
       decode = default
       condition = ${if match{${run{/usr/local/bin/7z l
$mime_decoded_filename}}} {\N(?i)\.(exe|com|vbs|bat|pif
|scr|hta|js|cmd|chm|cpl|jsp|reg|vbe|lnk|dll|sys)\n\N} }
       set acl_m_attach_cut = 1
       log_message = This message contains dangerous file(s) in ZIP, RAR,
7z attachment $acl_m_attach_cut.


Надеюсь теперь суть проблемы стала более понятной :)


2015-07-24 17:50 GMT+03:00 George L. Yermulnik <[email protected]>:

> Hello!
>
> On Fri, 24 Jul 2015 at 17:31:30 (+0300), Vlad Shpolyanskiy wrote:
>
> > Добрый день!
>
> > Есть вот такой mime ACL:
>
> > warn message = This message contains dangerous file(s) in ZIP, RAR, 7z
> > attachment.
> >        condition = ${if <{$message_size}{500K}{1}{0}}
> >        condition = ${if match {$mime_filename} {\N(?i)\.(zip|rar|7z)$\N}}
> >        decode = default
> >        condition = ${if match{${run{/usr/local/bin/7z l
> > $mime_decoded_filename}}} {\N(?i)\.(exe|com|vbs|bat|pif
> > |scr|hta|js|cmd|chm|cpl|jsp|reg|vbe|lnk|dll|sys)\n\N} }
> >        set acl_m_attach_cut = 1
> >        log_message = This message contains dangerous file(s) in ZIP, RAR,
> > 7z attachment $acl_m_attach_cut.
>
> > И все бы хорошо, но работает ровно до тех пор пока в атачи не добавить
> еще
> > один файл который не попадает под условие (т.е. в аттаче 2 файла, первый
> из
> > которых удовлетворяет условиям, второй нет).
> > В таком случаи, как я понимаю, этот последний файл не дает выставить
> > переменную acl_m_attach_cut в нужное мне значение.
>
> > Подскажите, пожалуйста, как это побороть?
>
> А там точно "\n" в конце строк? Не в командной строке, а в том, как exim
> вывод программы интерпретирует. Замените \n на \s или добавьте grep.
>
> > Спасибо.
>
> > _______________________________________________
> > Exim-users mailing list
> > [email protected]
> > http://mailground.net/mailman/listinfo/exim-users
>
> --
> George L. Yermulnik
> [YZ-RIPE]
>
> _______________________________________________
> Exim-users mailing list
> [email protected]
> http://mailground.net/mailman/listinfo/exim-users
>
>
_______________________________________________
Exim-users mailing list
[email protected]
http://mailground.net/mailman/listinfo/exim-users

Ответить