exim, не отрабатывает match в кондишине

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
deisler
рядовой
Сообщения: 37
Зарегистрирован: 2009-03-18 17:56:17

exim, не отрабатывает match в кондишине

Непрочитанное сообщение deisler » 2013-05-07 16:34:59

Здравствуйте.
Хочу из #spf_received выдрать кусок "(бла-бла)" и назначить его другой переменной.
Почему-то не отрабатывает match в кондишне (либо сам кондишн неправильный и не присваивает результат следующей переменной):

Код: Выделить всё

    warn    add_header    = $spf_received
            logwrite      = "SPF status: spf_result = $spf_result; spf_smtp_comment = $spf_smtp_comment"
            set acl_c_spf_for_dkim = ${if match{$spf_received}{\N\(.*\)\N}{$1}}
            logwrite      = $acl_c_spf_for_dkim
debug:

Код: Выделить всё

processing "warn"
check add_header = $spf_received
                 = Received-SPF: pass (mail.example.com: domain of yandex.ru designates 77.88.61.49 as permitted sender) client-ip=77.88.61.49; envelope-from=user@yandex.ru; helo=forward10.mail.yandex.net;
check logwrite = "SPF status: spf_result = $spf_result; spf_smtp_comment = $spf_smtp_comment"
               = "SPF status: spf_result = pass; spf_smtp_comment = "
LOG: MAIN
  "SPF status: spf_result = pass; spf_smtp_comment = "
check set acl_c_spf_for_dkim = ${if match{$spf_received}{\N\(.*\)\N}{$1}}
                             = 
check logwrite = $acl_c_spf_for_dkim
               = 
LOG: MAIN
  
warn: condition test succeeded in ACL "acl_check_rcpt"
Регулярное выражение правильное, проверял на http://gskinner.com/RegExr/.
Подскажите решение.
Спасибо.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

deisler
рядовой
Сообщения: 37
Зарегистрирован: 2009-03-18 17:56:17

Re: exim, не отрабатывает match в кондишине

Непрочитанное сообщение deisler » 2013-05-17 11:11:24

Вообщем надо писать кондишн так:

Код: Выделить всё

check set acl_c_spf_for_dkim = ${if match{$spf_received}{\N(\(.*\))\N}{$1}}
потому, что результат в $1 должен быть сгруппирован скобками ().