Страница 1 из 1
system_filter работает не так
Добавлено: 2010-06-08 10:18:06
moreh
нашёл тут на форуме кое какой пример исправил его под себя вот что получилось
Код: Выделить всё
lodagw# cat /usr/local/etc/exim/redirect_mail
logfile /var/log/exim/filter
if $recipients does not match "@local.domain" #копируем все исходящие которые уходят не на локальный домен
then
unseen deliver adminc@local.domain
endif
if $sender_address does not match "@local.domain" #копируем все внешние входящие
then
unseen deliver system@local.domain
endif
и получаеться что все исходящие и на локальные адреса и на удалённые копируются в
adminc@local.domain
а входящие с внешних адресов вообще не получает ни один ящик
и ещё в лог /var/log/exim/filter ничего не пишется почему-то
в чём может быть проблема?
Re: system_filter работает не так
Добавлено: 2010-06-08 10:22:26
Alex Keda
почитайте чё в ней содержится и в какие моменты времени
Re: system_filter работает не так
Добавлено: 2010-06-08 10:33:09
moreh
Переменная раскрытия “$recipients”, содержащая список всех получателей сообщения (разделённых запятыми и пробелами), - доступна в системных фильтрах. Из соображений безопасности, она не доступна в пользовательских фильтрах.
ну всё правильно в ней должен быть адрес получателя, или не так что ли?
Re: system_filter работает не так
Добавлено: 2010-06-08 15:58:05
moreh
с этим разобрался всё гуд работает. Ещё такой вопрос, как сделать что бы письма которые приходят на несуществующий получателей отправлялись на один специальный ящик
error@local.domain
это можно сделать через системный фильтр или же надо в роуринге делать? как то через verify recipirnts?
Re: system_filter работает не так
Добавлено: 2010-06-08 16:14:11
Alex Keda
ну, вы как-то проверяете существование получателей?
это же условие наоборот и изменение адреса доставки в месте где его юзаете наоборот.
Re: system_filter работает не так
Добавлено: 2010-06-08 16:33:50
moreh
я так полагаю проверка получателя происходит только тут
Код: Выделить всё
# Проверка получателя в локальных доменах.
# Если не проходит, то проверяется следующий ACL,
# и если непрошёл и там - deny
accept domains = +local_domains
endpass
message = "No such user on my mailserver!"
verify = recipient
# Проверяем получателя в релейных доменах
# Опять-таки если не проходит -> следующий ACL,
# и если непрошёл и там - deny
accept domains = +relay_to_domains
endpass
message = "Don't know how to relay to this address!"
verify = recipient
больше я ничего нигде не правил
кстати, сейчас письма которые не адресованы не существующим ящикам появляются на ящике на который стоит вот это правило
Код: Выделить всё
if $recipients match "@local.domain" #копируем все входящие, приходящие на адреса с локальным доменом
then
unseen deliver admink@tdlonda.ru
endif
Re: system_filter работает не так
Добавлено: 2010-06-09 17:49:15
moreh
сделал вот так
Код: Выделить всё
nouser:
driver = redirect
allow_fail
allow_defer
condition = ${if eq{} {${lookup mysql{SELECT goto FROM alias \
WHERE (id='${quote_mysql:$local_part@$domain}' OR \
id='${quote_mysql:@$domain}') AND \
active='1'}}}{yes}{no}}
data = error@local.domain
# Системные алиасы
system_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup mysql{SELECT `goto` FROM `alias` WHERE \
`address`='${quote_mysql:$local_part@$domain}' OR \
`address`='${quote_mysql:@$domain}'}}
# Доставка локальным юзерам в Dovecot
dovecot_user:
driver = accept
condition = ${lookup mysql{SELECT `goto` FROM \
`alias` WHERE \
`address`='${quote_mysql:$local_part@$domain}' OR \
`address`='${quote_mysql:@$domain}'}{yes}{no}}
transport = dovecot_delivery
но чо то вообще письма перестали приходить =(
вот что в логе
Код: Выделить всё
2010-06-09 17:22:25 1OMLEf-0000Pz-55 <= server@local.domain H=(sysadmin) [192.168.0.21] I=[192.168.0.101]:25 P=esmtpa A=auth_cram_md5: S=618 id=277452925.20100609171407@local.domain from <server@local.domain> for fgdfgdf@local.domain
2010-06-09 17:22:25 1OMLEf-0000Pz-55 == fgdfgdf@local.domain R=nouser defer (-1): condition check lookup
в чём проблема тут ?