Страница 1 из 1
Фильтры для exim
Добавлено: 2011-01-04 0:01:34
andryu
Пытаюсь заставить exim работать с фильтрами sieve.
Застрял на том, что ни как не могу заставить exim читать .forward файл в домашней директории пользователя, хотя это он по умолчанию должен делать..
Возможно это связано с тем что конфиг exima от ISPа.
Прочитав документацию про роутер REDIRECT
http://www.lissyara.su/doc/exim/4.62/th ... uter/#22.1
добавил
Код: Выделить всё
userforward:
driver = redirect
check_local_user
file = $home/.forward
no_verify
перед роутером
Код: Выделить всё
localuser:
driver = accept
transport = local_delivery
но похоже что exim игнорирует .forward файл.
Подскажите куда копать?
Re: Фильтры для exim
Добавлено: 2011-01-04 10:29:11
unix-admin
а что в .forward ?
Re: Фильтры для exim
Добавлено: 2011-01-04 11:50:51
andryu
Например, вот это. Пересылать все сходящие на
test@domain.com. Exim в мае начал поддерживать sieve, вот я и пытаюсь это проверить.(exim-4.72)
Код: Выделить всё
# Sieve Filter
# Generated by Ingo (http://www.horde.org/ingo/) (п?я?, я?пҐп? 4, 2011, 10:43)
# п?п?я?п?я?я?п?п?п?
if true {
redirect "test@domain.com";
}
# Forward Keep Action
if true {
keep;
stop;
}
Re: Фильтры для exim
Добавлено: 2011-01-04 13:35:26
dikens3
отладка в полезных скриптах.
Re: Фильтры для exim
Добавлено: 2011-01-05 0:34:00
andryu
dikens3 писал(а):отладка в полезных скриптах.
Не помогло, так как
dikens3 писал(а):Exim обработает так, будто это реальное письмо, но без реальной доставки (только логи).
а етот фильтр .forward во время доставки срабатывает. Во всяком случае в логе дебага ничего не нашёл.
Или я не прав?
Re: Фильтры для exim
Добавлено: 2011-01-05 10:51:11
dikens3
но похоже что exim игнорирует .forward файл.
Пользователи локальные?
Exim находит файл .forward в директории пользователя? (права на файл тоже посмотрите)
Проверьте может ли использовать sieve ваш exim. (Я не работал с ним, может пересобрать с какими опциями надо).
Создайте что-нибудь попроще в файле.forward. типа запись в логи строки "Hello World"
Проверьте опцию
# Если опция “
allow_filter” установлена в истинное значение и данные начинаются со строки “#Exim filter” или “#Sieve filter” то содержимое интерпретируется как список “фильтрующих” инструкций в форме фильтров Exim или Sieve соответственно.
http://www.lissyara.su/?id=1222#22.3
Так, набросок моих действий в случае проблемы.
Re: Фильтры для exim
Добавлено: 2011-01-05 12:01:19
andryu
dikens3 писал(а):Пользователи локальные?
Пользователи виртуальные. Поэтому конструкция с file = $home/.forward не подойдёт. Про “allow_filter” я тоже прочитал и уже её добавил. Получилось вот что
Код: Выделить всё
userforward:
driver = redirect
check_local_user
data = ${extract{4}{:}{${lookup{$local_part@$domain}lsearch{/usr/local/etc/exim/passwd}}}}/.forward
allow_filter
no_verify
Конструкцию
data = скопировал из другого места в конфиге, поидее должно работать.
В passwd записи такого типа:
test@domain.com:1010:1010:50:/home/user/data/email/domain.com/test:no:password
Последние версии exim поддерживают sieve, поддержка встроенная.
Exim находит файл .forward в директории пользователя? (права на файл тоже посмотрите)
Вот этот пункт проверить не получается, знаний не хватает
dikens3 писал(а):Так, набросок моих действий в случае проблемы.
Нашёл в гугле Howto небольшой, буду пробывать на его основе запустить мою конструкцию
Re: Фильтры для exim
Добавлено: 2011-01-05 13:24:39
dikens3
Нафиг вам sieve? Чтобы алиасы и перенаправления делать? Это можно и так сделать.
Задачу огласите что-ли?
Re: Фильтры для exim
Добавлено: 2011-01-05 13:46:12
andryu
Sieve нужно для фильтров в вебмаиле. Чтобы пользователи могли сами себе фильтры создавать(складывание по папочкам,фильтрация по телу письма, уведомление о новой почте и т.д. и т.п.) алиасы и перенаправление они могут и через панель добавить, а фильтрацию нормальную только сиеве обеспечивает.
Вычитал, что в моём случае одним роутером не обойтись, ещё транспорт для сиеве нужно делать
Re: Фильтры для exim
Добавлено: 2011-01-08 1:44:56
andryu
Замучился с включением sieve - ничего толком не получилось, да и к томуже sieve в exim-е - это не sieve а
“специфическая реализация Sieve для Exim”
Не поддерживаются некоторые возможности.
В итоге поставил procmail

Но и тут без граблей никак не обошлось...
1) Как быть с квотами в таком случае? Procmail на квоты совсем не смотрит и будет складывать почту в ящик до тех пор пока системные квоты не кончатся(вероятно).
2) И ещё одна проблемка. В maildir есть файлик один – maildirsize, кто его будет обновлять вместо procmaila(он этого не умеет в отличии от exima)? Webmail-ы из-за него будут неправильно показывать заполненность ящика
Есть идеи по решению проблем?
Re: Фильтры для exim
Добавлено: 2011-01-08 9:41:14
dikens3
dovecot c sieve вроде работает, может его как задействовать?
Re: Фильтры для exim
Добавлено: 2011-01-08 14:39:41
andryu
dikens3 писал(а):dovecot c sieve вроде работает, может его как задействовать?
dovecot очень хорошо работает, но тогда его, вместо exim, придётся deliver-ром делать. Надеюсь это окажется проще чем exim с sieve подружить
Re: Фильтры для exim
Добавлено: 2011-01-08 21:47:26
Alex Keda
у меня везде он deliver
всё хорошо.
Re: Фильтры для exim
Добавлено: 2011-01-09 5:24:23
andryu
Alex Keda писал(а):у меня везде он deliver
всё хорошо.
Не подскажите вашу конструкцию транспорта, а то никак не получалось запустить доставку довекотом? С правами долго парился, пока не выставил
Код: Выделить всё
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0666
user = mailnull
group = mail
}
client {
path = /var/run/dovecot/auth-client
mode = 0666
user = mailnull
group = mail
}
Чувствую, что такие права нельзя выставлять, но без них никак. Или в директорию к пользователю не попасть или к auth-master не подключиться
вот что у меня получилось:
Код: Выделить всё
dovecot_user:
driver = accept
condition = ${lookup {$local_part@$domain} lsearch {/usr/local/etc/exim/passwd} {yes} {no} }
transport = dovecot_delivery
cannot_route_message = Unknown user
dovecot_delivery:
driver = pipe
command = /usr/local/libexec/dovecot/deliver -d $local_part@$domain
message_prefix =
message_suffix =
delivery_date_add
envelope_to_add
return_path_add
# log_output
#user = mailnull
user = ${extract{1}{:}{${lookup{$local_part@$domain}lsearch{/usr/local/etc/exim/passwd}}}}
group = ${extract{2}{:}{${lookup{$local_part@$domain}lsearch{/usr/local/etc/exim/passwd}}}}
Почти стандартно, если не считать прав на сокет довекота. Только теперь неясно как довекоту про квоты сообщить. В старых ящиках есть maildirsize, который eximом создавался, а для новых довекот квоты не знает. И если поменять квоту для старых ящиков(в панели), то довекот будет старую квоту использовать..
Re: Фильтры для exim
Добавлено: 2011-01-09 18:57:45
Alex Keda
группу заюзайте
Re: Фильтры для exim
Добавлено: 2011-01-09 19:16:42
andryu
Alex Keda писал(а):группу заюзайте
Каким образом группа связана с квотой или как её можно связать? У всех ящиков для домена один юзер:группа..
Re: Фильтры для exim
Добавлено: 2011-04-13 18:34:21
gyurza2000
Не подскажите как сказать Exim что бы он пересылал почту на другой e-mail,НО пересылал всё кроме папки SPAM?