Exim system_filter

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
McLeod095
проходил мимо

Exim system_filter

Непрочитанное сообщение McLeod095 » 2009-07-10 17:28:42

Всем доброго времени!!

С екзимом дружу давно и енравится мне он.
Но не приходилось на нем делать вещи сложнее проверок в 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 (на английском не смог все прочесть, терпения не хватило)
Последний раз редактировалось Laa 2009-07-13 10:43:13, всего редактировалось 1 раз.
Причина: Убедительная просьба юзать теги [code] при оформлении листингов.

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

Аватара пользователя
uHk
мл. сержант
Сообщения: 134
Зарегистрирован: 2008-05-21 15:16:48
Откуда: Москва
Контактная информация:

Re: Exim system_filter

Непрочитанное сообщение uHk » 2009-07-10 18:19:47

можно в самом system_filter прописать

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

unseen deliver spam_test@domain.com
надо сразу брать лошадь за рога

McLeod095
проходил мимо

Re: Exim system_filter

Непрочитанное сообщение McLeod095 » 2009-07-13 9:46:14

Я понимаю что можно.
Но у меня не отрабатывается фильтр.
Если я посылаю письма на данные адреса то заголовки не меняются, сейчас для меня важдно именно перезаписать заголовки. С пересылкой уже попозже разберусь.

McLeod095
проходил мимо

Re: Exim system_filter

Непрочитанное сообщение McLeod095 » 2009-07-13 13:09:18

Вообщем разобрался!

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

Аватара пользователя
Agronom
сержант
Сообщения: 294
Зарегистрирован: 2006-12-11 10:30:13

Re: Exim system_filter

Непрочитанное сообщение Agronom » 2009-07-13 16:14:18

а как прописать чтобы вся почта, которая приходит на адрес test@mymail.ru проходила в любом случае? что-то типа:

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

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

McLeod095
проходил мимо

Re: Exim system_filter

Непрочитанное сообщение McLeod095 » 2009-07-14 9:38:27

В смысле, проходило в любом случае?
Не понял суть вопроса.
Если письмо дошло до роутеров то оно точно попадет локальному получателю, если у Вас все правильно настроено.
А если Вы имеете ввиду приходило для данного адреса не взирая на запреты и т.п. то смотреть в сторону acl_smtp_rcpt
ну и дальше по списку.

Аватара пользователя
Agronom
сержант
Сообщения: 294
Зарегистрирован: 2006-12-11 10:30:13

Re: Exim system_filter

Непрочитанное сообщение Agronom » 2009-07-14 12:25:55

просто у меня в конфиге сначала идет проверка по правилам в файле 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}}
и т.д.
сначала письмо не прошедшее проверку по почтовым правилам вырезается, а потом уже аклы ему по-барабану :(
мне нужно чтобы письма для определенных пользователей проходили в любом случае, без проверок. Поэтому я решил добавить их в список с правилами в самый верх

McLeod095
рядовой
Сообщения: 11
Зарегистрирован: 2009-07-14 9:38:52

Re: Exim system_filter

Непрочитанное сообщение McLeod095 » 2009-07-14 12:57:22

ЭЭЭЭ
если не прав пусть меня поправят

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

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

Re: Exim system_filter

Непрочитанное сообщение Laa » 2009-07-14 13:25:44

+ также надо понимать, что если письмо идет для двух получателей, второй из которых не хочет получать спам, а первый в разрешенном списке, то такое письмо может быть принято и второй пользователь будет админа спрашивать -- "а чо я получил этот спам???". :Search:
exim: помните, что выдавая deny, вы можете недоставить ваше же письмо, зарубив sender-verify удаленного MTA к вашему MTA!!!