Hello!

On Thu, 01 Nov 2018 at 17:47:18 (+0200), Mikhail Golub wrote:

> 01.11.2018 17:28, George L. Yermulnik пишет:
> >> warn set acl_m_test = ${if match{${run{/usr/local/bin/7z l
> >> $mime_decoded_filename}}} {\N(Multivolume = +)\N} {$1}}

> > 1. Убрать "\N" - их наличие тут, имхо, бессмысленно.
> Имеет смыл.

Какой?

> > 2. Заэкранировать сам слеш: \\+
> Проверил. Не помогло.

Мне помогает:
[--- cut ---]
$ exim -be
> warn set acl_m_test = ${if match{Multivolume = +} {(Multivolume = \\+)} {$1}}
warn set acl_m_test = Multivolume = +
> warn set acl_m_test = ${if match{Multivolume = -} {\N(Multivolume = [+-])\N} 
> {$1}}
warn set acl_m_test = Multivolume = -
> warn set acl_m_test = ${if match{Multivolume = +} {\N(Multivolume = [+-])\N} 
> {$1}}
warn set acl_m_test = Multivolume = +
> ^D
[--- cut ---]

> > 3. Круглые скобки, судя по приведённому примеру, тоже смысла не имеют.
> Тоже имеют смысл. Переменная раскрывается в $1.

Этого не заметил. Прошу прощения.

> Переделал немного.
> warn set acl_m_test = ${if match{${run{/usr/local/bin/7z l 
> $mime_decoded_filename}}} {\NMultivolume = (\+|\-)\N} {$1}}

> Если архив не многотомный, то set acl_m_test получает значение "-".
> А вот если многотомный (Multivolume = +) - не срабатывает правило :(

-- 
George L. Yermulnik
[YZ-RIPE]

_______________________________________________
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users

Ответить