Страница 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"

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
Прошу прощения. Я исправлюсь
Как в одном роутере совместить 2 условия?
Re: Exim redirect by subject or sender template
Добавлено: 2009-10-20 16:34:55
dikens3
Smash писал(а):Я же выше написал, что мне нужно не просто "or", а в сочетании с "and"

Скобками регулируйте все что пожелаете. А лучше напишите логические выражения для себя хотя бы.
Например:
Если
(А и Б) или
((А и С) и (В и Д)) тогда ....
(А и Б) - Условие 1
((А и С) и (В и Д)) - Условие 2
или - отношение между условиями (логический символ). В этом случае выражение будет истинно если
Условие 1 или
Условие 2 истинны
На скобки обратите внимание в этом примере.
Re: Exim redirect by subject or sender template
Добавлено: 2009-10-20 16:43:36
Smash
Да я понимаю, как логически это должно быть. Но я попробовал написать правило, и оно не работает. Выше я его привел. Я так понимаю постановка такого правила возможна, по вашим постам, но тогда укажите пожалуйста на ошибку в синтаксисе моего кода.
Код: Выделить всё
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