требуеться небольшая помощь написать правило

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
moreh
рядовой
Сообщения: 24
Зарегистрирован: 2010-06-07 13:48:50

требуеться небольшая помощь написать правило

Непрочитанное сообщение moreh » 2010-09-07 7:54:13

И так задача состоит в том что бы фильтровать письма на несуществующие адреса и перенаправять их на ящик error@local.domain, средствами system filter
Вот я сделал такое правило

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

if $recipients match "@local.domain"
then
if $recipients match "${lookup mysql{SELECT `goto` FROM `alias` WHERE \
                   `address`='$recipients' and `active`='1'}}"
then
else
seen deliver error@local.domain
finish
endif
endif
Понятно что оно немного не логичное :) но уж только так работает оно я хз почему. Проблема в том что оно работает если во втором случае match поменять на is, но тогда письма где в адресатах указан не один получатель, а два и более тоже попадают в error. А в первом случае всё работает хорошо только письма на не существующие адреса не уходят в еррор. Прошу помощи как модифицировать правило, что бы работало так как нужно.

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2520 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Laa
ст. лейтенант
Сообщения: 1032
Зарегистрирован: 2008-02-21 18:25:33
Откуда: Украина, Россия

Re: требуеться небольшая помощь написать правило

Непрочитанное сообщение Laa » 2010-09-07 9:47:18

Есть полезная переменная, которую тоже можно включить в проверку: $rcpt_count
exim: помните, что выдавая deny, вы можете недоставить ваше же письмо, зарубив sender-verify удаленного MTA к вашему MTA!!!

moreh
рядовой
Сообщения: 24
Зарегистрирован: 2010-06-07 13:48:50

Re: требуеться небольшая помощь написать правило

Непрочитанное сообщение moreh » 2010-09-07 10:04:42

хм.. иея конечно интересная, а если в письме где больше одного адресата будет не существующий как тогда поступить

Аватара пользователя
Laa
ст. лейтенант
Сообщения: 1032
Зарегистрирован: 2008-02-21 18:25:33
Откуда: Украина, Россия

Re: требуеться небольшая помощь написать правило

Непрочитанное сообщение Laa » 2010-09-07 10:25:18

moreh писал(а):хм.. иея конечно интересная, а если в письме где больше одного адресата будет не существующий как тогда поступить
ты ставишь задачу -- ты и ответь на этот вопрос. Я дал инструмент определять факт >1 или нет.
exim: помните, что выдавая deny, вы можете недоставить ваше же письмо, зарубив sender-verify удаленного MTA к вашему MTA!!!

moreh
рядовой
Сообщения: 24
Зарегистрирован: 2010-06-07 13:48:50

Re: требуеться небольшая помощь написать правило

Непрочитанное сообщение moreh » 2010-09-07 13:55:42

когда один получатель всё понятно, а вот когда получателей много строка $recipients получает такой вид, к примеру

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

 mail1@local.domain mail2@local.domain mail3@local.domain mail1@inet.domain
тут я не могу догнать как фильтровать у меня или письмо отправляется в error полностью или же просто проходит, и отправителю приходит редирект о том что письмо на такой то адрес небыло доставлено, а так не пойдёт..
мб как то организовать через регулярные выражения но я в этом не слишком силён =(
ведь поидее contains и должен решать такую задачу, но что то он не так работает