Вобщем я тут разобрался получилось довольно красиво

И так вопрос был мною задан, я и отвечу на него вдруг кому понадобится готовое решение.
Значит задача состояла в том что бы:
1. Письма приходящие на не существующие адреса перенаправлять на ящик
error@local.domain
2. Письма отправленые на внешние домены, от юзеров которым не разрешено отправлять почту в мир, перенаправлять в ящик
error@local.domain
3. Письма которые пришли с внешнего мира, юзерам которым не разрешено получать письма с внешки, перенаправлять в ящик
error@local.domain
4. Письма которые отправлены на внешние домены и которые не подходят под вышеописанные правила(это для юзеров которым разрешено и которые не попадают в error), копировать в ящик
outgoing@local.domain
5. Все входящие письма, которые не подходят под вышеописанные правила и не попадают в error копировать в
admink@local.domain
И так сам файл фильтра
Код: Выделить всё
logfile /var/log/exim/filter
#Перенаправляем все входящие на не существующие адреса на error@local.domain
if ($recipients match "@local.domain" and $recipients is "${lookup mysql{SELECT `goto` FROM `alias` WHERE \
`address`='$recipients' and `active`='1'}}")
then #тут может быть как то сделать можно более логично? :) потому что $recipients does not match не работает :(
else
seen deliver error@local.domain
finish
endif
#Перенаправляем все входящие письма от доменов отличных от local.domain
#на адрес error@local.domain, для всех юзеров, которым запрещено принимать письма с инета
if ($sender_address does not match "@local.domain" and $recipients is "${lookup mysql{SELECT `goto` FROM `alias` WHERE \
`address`='$recipients' and `noinet`='1'}}")
then
seen deliver error@local.domain
finish
endif
#Перенаправляем все исходящие письма на внешние домены отличные от local.domain
#на адрес error@local.domain, для всех юзеров которым запрещено посылать письма в инет
if ($recipients does not match "@local.domain" and $sender_address is "${lookup mysql{SELECT `goto` FROM `alias` WHERE \
`address`='$sender_address' and `noinet`='1'}}")
then
seen deliver error@local.domain
finish
endif
if $recipients does not match "@local.domain" #копируем все исходящие которые уходят не на локальный домен
then
unseen deliver outgoing@local.domain
endif
if $recipients match "@local.domain" #копируем все входящие на @local.domain admink@local.domain
then
unseen deliver admink@local.domain
endif
Ну вот и всё, всё оказалось очень просто...
Критика и предложения приветствуются.