Страница 1 из 1

Exim redirect by subject or sender template

Добавлено: 2009-10-06 11:25:50
Smash
Добрый день.

Необходимо, чтобы сообщения о mail delivery failed предназначенные определенному локальному пользователю перенаправлялись на другой локальный ящик (например админа) с целью предотвращения зацикливаний, т.к. на этом пользователе настроен автоответчик.

В какую сторону копать? Я так понимаю это связано с фильтрами и роутерами?
Может уже кто-то реализовывал подобный функционал?

Заранее благодарен.

Re: Exim redirect by subject or sender template

Добавлено: 2009-10-06 13:07:55
Alex Keda
роутер пиши

Re: Exim redirect by subject or sender template

Добавлено: 2009-10-06 16:39:07
Smash

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

jira_delivery:
    driver = redirect
    condition = ${if and {\
        {match {$local_part} {test}} \
        {match {$h_subject:} {\NMail delivery failed\N} }}\
        {yes} {no} \
        }
    data = admin@my.domain

Re: Exim redirect by subject or sender template

Добавлено: 2009-10-19 16:33:52
Smash
Подскажите, как добавить условие или для темы письма.
Т.е. должно быть:
Получатель test и (тема "Тема1" или "Тема2" или "Тема3")

Re: Exim redirect by subject or sender template

Добавлено: 2009-10-19 19:11:45
Alex Keda
та вроде всё верно у вас

Re: Exim redirect by subject or sender template

Добавлено: 2009-10-19 22:17:14
Smash
То что я написал выше работает для одной темы. А я теперь хочу добавить еще несколько тем, при совпадении которых должно срабатывать правило.
Т.е. что-то вроде этого должно получиться, но у меня не работает. Не знаю как условие "or" правильно добавить.

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

jira_delivery:
    driver = redirect
    condition = ${if and {\
        {match {$local_part} {test}} \
        {or {{match {$h_subject:} {\NMail delivery failed\N} }\
        {match {$h_subject:} {\NUnable to deliver\N} }\
        }}}\
        {yes} {no} \
        }
    data = admin@my.domain

Re: Exim redirect by subject or sender template

Добавлено: 2009-10-19 23:39:57
dikens3

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

          condition     = ${if or {{eq{domain1.ru}{$acl_m3}}{eq{domain2.ru}{$acl_m3}}}{yes}{no}}

Re: Exim redirect by subject or sender template

Добавлено: 2009-10-20 9:24:26
Smash
Я же выше написал, что мне нужно не просто "or", а в сочетании с "and" :unknown:

Re: Exim redirect by subject or sender template

Добавлено: 2009-10-20 10:17:40
Alex Keda
напишите два условия.
или по базе ищщите.

Re: Exim redirect by subject or sender template

Добавлено: 2009-10-20 10:18:14
Alex Keda
и сообщения оформляйте номрально.
желание отвечать быстро пропадает, когда глаза начинаешь ломать над чужими проблемами

Re: Exim redirect by subject or sender template

Добавлено: 2009-10-20 13:09:51
Smash
Прошу прощения. Я исправлюсь :oops:
Как в одном роутере совместить 2 условия?

Re: Exim redirect by subject or sender template

Добавлено: 2009-10-20 16:34:55
dikens3
Smash писал(а):Я же выше написал, что мне нужно не просто "or", а в сочетании с "and" :unknown:
Скобками регулируйте все что пожелаете. А лучше напишите логические выражения для себя хотя бы.

Например:
Если (А и Б) или ((А и С) и (В и Д)) тогда ....

(А и Б) - Условие 1
((А и С) и (В и Д)) - Условие 2
или - отношение между условиями (логический символ). В этом случае выражение будет истинно если Условие 1 или Условие 2 истинны

На скобки обратите внимание в этом примере.

Re: Exim redirect by subject or sender template

Добавлено: 2009-10-20 16:43:36
Smash
Да я понимаю, как логически это должно быть. Но я попробовал написать правило, и оно не работает. Выше я его привел. Я так понимаю постановка такого правила возможна, по вашим постам, но тогда укажите пожалуйста на ошибку в синтаксисе моего кода. :st:

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

jira_delivery:
    driver = redirect
    condition = ${if and {\
        {match {$local_part} {test}} \
        {or {{match {$h_subject:} {\NMail delivery failed\N} }\
        {match {$h_subject:} {\NUnable to deliver\N} }\
        }}}\
        {yes} {no} \
        }
    data = admin@my.domain
Почему не работает?
Вот что в panic.log пишет

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

failed to expand condition "${if and {{match {$local_part} {rates_jira}} ${if or {{match {$h_subject:} {\NMail delivery failed\N} } {match {$h_subject:} {\NUndelivered Mail Returned to Sender\N} }}}{yes} {no}}{yes} {no} }" for jira_delivery router: each subcondition inside an "and{...}" condition must be in its own {}

Re: Exim redirect by subject or sender template

Добавлено: 2009-10-20 16:46:14
dikens3
Ознакомьтесь с системным фильтром, там огромные возможности по сравнению с обычным кондишеном.

незнаю как тут, попробуйте использовать | (Он в системном фильтре так работает.)

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

{\NMail delivery failed|Unable to deliver\N}
Почему не работает?
Пишет что каждая конструкция И (AND) должна быть в своих скобках ({})

Re: Exim redirect by subject or sender template

Добавлено: 2009-10-20 16:59:02
Smash
То что пишет я понимаю. Вроде неоднократно проверял скобки - всё ок. Я не могу понять какой синтаксис для условия "or"

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

${if and {{первое условеие} $(нужен ли тут этот доллар?){if(нужен ли тут этот if?) or {второе условие 1} {второе условие 2}}} {yes} {no} }

Re: Exim redirect by subject or sender template

Добавлено: 2009-10-20 17:03:02
dikens3
Основной логический символ у Вас AND. if должен быть один.

${
if and
..



}

Re: Exim redirect by subject or sender template

Добавлено: 2009-10-20 17:18:06
Smash
Всем спасибо! Получилось. Видать где-то не хватало скобки.

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

jira_delivery:
    driver = redirect
    condition = ${if and {\
        {match {$local_part} {test}} \
        {or {{match {$h_subject:} {\NMail delivery failed\N} }\
        {match {$h_subject:} {\NUndelivered Mail Returned to Sender\N} }\
        }}}\
        {yes} {no} \
        }
    data = admin@domain.com