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

Exim system_filter

Добавлено: 2009-07-10 17:28:42
McLeod095
Всем доброго времени!!

С екзимом дружу давно и енравится мне он.
Но не приходилось на нем делать вещи сложнее проверок в acl.
Столкнуля с проблемой что на время тестирования spamassassin необходимо почту класть как пользователю так и на определенный выделенный ящик, при этом необходимо менять заголовок subject.

Сделать копирование с помощью router получилось, но встала проблема перезаписи заголовка.
Если в роутере указать unseen = yes то заголовки не перезаписываются, но письма копируются, а если указать unseen = no то заголовки перезаписываются но письма не копируются.
немного почитав увидел что можно выполнить все с помощью system_filter
настроил exim и в файле прописал

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

logfile /var/log/exim/system-filter.log

if $local_part contains "test"
then
    headers add "Old-Subject: $h_subject"
    headers remove "Subject"
    headers add "Subject: test filter (was: $h_old-subject)"
    headers remove "Old-Subject"
endif

if $local_part contains "test_user"
then
    headers add "Old-Subject: $h_subject"
    headers remove "Subject"
    headers add "Subject: test filter (was: $h_old-subject)"
    headers remove "Old-Subject"
endif
После чего создал аналогичный роутер

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

test:
    check_local_user
    driver		=	redirect
    no_verify
    allow_filter
    domains		=	domain.com
    local_parts		=	test : test_user
    data		=	spam_test@domain.com
    unseen		=	yes
Но правило не отрабатывается.

Может кто подскажет куда надо копнуть что бы заработало.
или хотя бы ссылку с примерами
в инете что то очень мало про system_filter (на английском не смог все прочесть, терпения не хватило)

Re: Exim system_filter

Добавлено: 2009-07-10 18:19:47
uHk
можно в самом system_filter прописать

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

unseen deliver spam_test@domain.com

Re: Exim system_filter

Добавлено: 2009-07-13 9:46:14
McLeod095
Я понимаю что можно.
Но у меня не отрабатывается фильтр.
Если я посылаю письма на данные адреса то заголовки не меняются, сейчас для меня важдно именно перезаписать заголовки. С пересылкой уже попозже разберусь.

Re: Exim system_filter

Добавлено: 2009-07-13 13:09:18
McLeod095
Вообщем разобрался!

переменные local_part и domain имеют нулевое значение в system_filter
поэтому и не проходил тест.

Re: Exim system_filter

Добавлено: 2009-07-13 16:14:18
Agronom
а как прописать чтобы вся почта, которая приходит на адрес test@mymail.ru проходила в любом случае? что-то типа:

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

if $header_to: contains "test@mymail.ru"
then  ?????----что тут нужно прописать?------???????
endif
И есть у кого-нить ссылка на опции составления этих правил?

Re: Exim system_filter

Добавлено: 2009-07-14 9:38:27
McLeod095
В смысле, проходило в любом случае?
Не понял суть вопроса.
Если письмо дошло до роутеров то оно точно попадет локальному получателю, если у Вас все правильно настроено.
А если Вы имеете ввиду приходило для данного адреса не взирая на запреты и т.п. то смотреть в сторону acl_smtp_rcpt
ну и дальше по списку.

Re: Exim system_filter

Добавлено: 2009-07-14 12:25:55
Agronom
просто у меня в конфиге сначала идет проверка по правилам в файле exim.rules:

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

......................
smtp_accept_max_per_host = 25
system_filter = /etc/exim/exim.rules
system_filter_user = exim
system_filter_group = exim
system_filter_file_transport = address_file
........................
а потом уже идут правила для тех пользователей, которые хотят получать ВСЮ почту, даже спам

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

######################################################################
#                       ACL CONFIGURATION                            #
#         Specifies access control lists for incoming SMTP mail      #
######################################################################

begin acl
...........
...........
...........
accept    condition = ${if match {$local_part}{ivanov}{yes}}
accept    condition = ${if match {$local_part}{pupkin}{yes}}
и т.д.
сначала письмо не прошедшее проверку по почтовым правилам вырезается, а потом уже аклы ему по-барабану :(
мне нужно чтобы письма для определенных пользователей проходили в любом случае, без проверок. Поэтому я решил добавить их в список с правилами в самый верх

Re: Exim system_filter

Добавлено: 2009-07-14 12:57:22
McLeod095
ЭЭЭЭ
если не прав пусть меня поправят

правила в файле exim.rules применяются в последнюю очередь на уровне routers
и их надо прописывать явно.
Сначала идут smtp_acl_rcpt потом уже smtp_acl_data ну и т.д.
Поэтому смотрите как у Вас прописаны правила.
Если хотите что бы данные пользователи получали всю почту то поставьте разрешающие правила для них в самое начало smtp_acl_rcpt и проверьте что бы для них почта не резалась на других уровнях проверок.

Re: Exim system_filter

Добавлено: 2009-07-14 13:25:44
Laa
+ также надо понимать, что если письмо идет для двух получателей, второй из которых не хочет получать спам, а первый в разрешенном списке, то такое письмо может быть принято и второй пользователь будет админа спрашивать -- "а чо я получил этот спам???". :Search: