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

Exim: фильтр для определенного ящика

Добавлено: 2011-04-04 18:35:07
v_d_v
Есть конфигурация Exim&Dovecot c этого сайта. Спасибо Cancer.

Стоит задача настроить фильтр входящих сообщений для одного определенного ящика.
Т.е. принимаем почту только с определенных доменов на один ящик test@dmn.ru, все остальное приходящее на этот ящик режем.
Другие ящики dmn.ru работают в обычном режиме.
Как проще организовать?
Можно ли организовать с помощью acl или использовать system-filter?

Спасибо

Re: Exim: фильтр для определенного ящика

Добавлено: 2011-04-04 19:10:58
Alex Keda
а как угодно.
exim, однако

Re: Exim: фильтр для определенного ящика

Добавлено: 2011-04-04 20:51:57
dikens3

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

deny local_parts = test
     !sender_domains = domain1 : domain2
Если своих доменов много:

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

deny recipients = test@dmn.ru
     !sender_domains = domain1 : domain2

Re: Exim: фильтр для определенного ящика

Добавлено: 2011-04-04 23:42:16
v_d_v
Спасибо за ответы

deny
recipients = test@dmn.ru
!sender_domains = domain1 : domain2
hosts = !127.0.0.1 : !localhost : *
message = "Only registred users!"

Так работает!

deny
recipients = test@dmn.ru
!sender_domains = ${lookup mysql{SELECT `domain` \
FROM `domain_support` WHERE \
`domain`='${domain}' }}
hosts = !127.0.0.1 : !localhost : *
message = "Only registred users!"

А так нет. Не подскажете почему?

Re: Exim: фильтр для определенного ящика

Добавлено: 2011-04-05 0:28:50
v_d_v
Думаю нужно писать
${sender_domain}' }}
Но такой переменной нет

Re: Exim: фильтр для определенного ящика

Добавлено: 2011-04-05 10:16:41
hizel
см. особенности раскрытия sql запросов, используйте тэг code

думаю надо

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

${lookup mysql{SELECT GROUP_CONCAT(`domain` SEPARATOR ':') FROM `domain_support` WHERE `domain`='${domain}' }}

Re: Exim: фильтр для определенного ящика

Добавлено: 2011-04-05 10:31:57
v_d_v
Сделал такую универсальную конструкцию:

deny
condition = ${if eq {${lookup mysql{SELECT sendername FROM domain_support WHERE (sendername LIKE SUBSTRING ('$sender_address',INSTR('$sender_address','@')+1)) or (sendername='$sender_address')}}}{}{yes}{no}
recipients = test@dmn.ru
message = "Only registred users!"

Соответственно, в sendername перечисленны, как email, так и домены разрешенных отправителей.