exim+dovecot+maildir
На данный момент есть The bat который пересылает почту. Главное преимущество – наглядность интервейса при создании правил. Недостатки очевидны.
Пример: письмо адресовано mailtest@mydomain. Если в теме есть “инфо” то пересылается на 1@mydoman, 2@mydomain, если в теме info или price, то на 3@mydomain, если отправитель test@domain, то на 4@mydomain, если тема не содержит price то на 5@mydomain все остальное на 6@mydomain. При этом вся почта адресованная mailtest@mydomain пересылается на 7@mydomain.
Подскажите направление в котором копать. На ум приходят либо фильтры эксима, либо procmail.
Буду блогодарен если выложите работающие примеры фильтров или конфиг procmail.
P.S. Нет ли удобного интерфейса для конечного пользователя, который правила пересылки привык создавать в the bat?
Решено: Пересылка почты в зависимости от получателя и темы
Модераторы: SLEDopit, Модераторы разделов
-
storm2005
- Сообщения: 136
-
Frank
- Сообщения: 1059
- ОС: Ubuntu, Debian
Re: Решено: Пересылка почты в зависимости от получателя и темы
Нутром чую, что это всё элементарно делается одним только экзимом, надо лишь найти человека, разбирающегося в нём 

-
KiWi
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
-
pelmen
- Сообщения: 1268
- ОС: debian
Re: Решено: Пересылка почты в зависимости от получателя и темы
В теме не силен, но возник вопрос: причем тут dovecot?
-
Postum
- Сообщения: 29
- ОС: GNU Linux
Re: Решено: Пересылка почты в зависимости от получателя и темы
Код: Выделить всё
if $h_subject: contains "info" then
deliver 3@mydomain
endif
...
if $h_subject: not contains "price" then
deliver 5@mydomain
endif
deliver 6@mydomainНавскидку - где-то так. Порядок важен.
Что делать со вхождениями на русском - не знаю.
...И ты поймешь: все то, чего нельзя –
Песчинка в том, что не запрещено...
Песчинка в том, что не запрещено...
© Ю. Лорес
Спасибо сказали:
-
KiWi
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Решено: Пересылка почты в зависимости от получателя и темы
если топик стартеру действительно нужна локальная перетасовка почты, то sieve+dovecot хватит с головой.
p.s. exim, естественно, тоже умеет sieve. но в данном случае, imho, это будет из пушки по воробьям.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
Спасибо сказали:
-
storm2005
- Сообщения: 136
Re: Решено: Пересылка почты в зависимости от получателя и темы
Настраивал sieve в dovecot. Но на выходе ничего не работало. Писал развернутый комментарий по этой причине.
Потом заглянут в конфиг эксима. Нашел транспорт отвечающий за доставку
Я так понимаю, что необходимо либо переписывать транспорт с тем условием чтоб доставкой заниался довекот, либо мою задачу решать системным фильтром эксима?
Потом заглянут в конфиг эксима. Нашел транспорт отвечающий за доставку
Код: Выделить всё
local_delivery:
driver = appendfile
check_string = ""
create_directory
delivery_date_add
directory = /var/mail/$domain/$local_part
directory_mode = 770
envelope_to_add
group = mail
maildir_format
maildir_tag = ,S=$message_size
message_prefix = ""
message_suffix = ""
mode = 0660
quota = ${lookup mysql{SELECT quota FROM users WHERE login='${local_part}' AND domain='${domain}'}{${value}M}}
quota_size_regex = S=(\d+)$
quota_warn_threshold = 75%
return_path_addЯ так понимаю, что необходимо либо переписывать транспорт с тем условием чтоб доставкой заниался довекот, либо мою задачу решать системным фильтром эксима?
-
KiWi
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: Решено: Пересылка почты в зависимости от получателя и темы
Именно так -- либо deliver из dovecot, либо фильтры exim'а.
Спасибо сказали:
-
storm2005
- Сообщения: 136
Re: Решено: Пересылка почты в зависимости от получателя и темы
Посредством системного фильтра эксима реализовал все что мне необходимо.
Пример: необходимо форвардить почту пришедшую с ящика user@gmail.com на ящик user@mydomain на два ящика моего домена. При этом если тема содержит ТЕКУШИЕ ЗАКАЗЫ, то почта форвардится на user1@mydomain, а если не содержит тему ТЕКУШИЕ ЗАКАЗЫ, то на ящик user2@mydomain.
При этом если форвардинг осуществляется на user1@mydomain,то копия также приходит на ящик user@mydomain, Если же на user2@mydomain, то на ящик user@mydomain не приходит ничего.
Пример: необходимо форвардить почту пришедшую с ящика user@gmail.com на ящик user@mydomain на два ящика моего домена. При этом если тема содержит ТЕКУШИЕ ЗАКАЗЫ, то почта форвардится на user1@mydomain, а если не содержит тему ТЕКУШИЕ ЗАКАЗЫ, то на ящик user2@mydomain.
При этом если форвардинг осуществляется на user1@mydomain,то копия также приходит на ящик user@mydomain, Если же на user2@mydomain, то на ящик user@mydomain не приходит ничего.
Код: Выделить всё
# Exim filter
#Пример фильтра
if $sender_address: contains "user@gmail.com" and
$recipients: contains "user@mydomain"
# Тема содержащая русские символы должна быть кодированна особым образом.
# Самый простой способ узнать как надо закодировать - отправить самому себе письмо
# с необходимой русской темой и в логах посмотреть как эксим преобразовал тему в необходимый формат
and $header_subject: contains "\320\242\320\225\320\232\320\243\320\250\320\230\320\225 \320\227\320\220\320\232\320\220\320\227\320\253"
then
# Если указана команда unseen, то это означает, что обработку не прерывать действием deliver,
# если не указана, то на успешном deliver обработка прекращается.
unseen deliver user1@mydomain
elif $sender_address: contains "user@gmail.com" and
$recipients: contains "user@mydomain"
#does not - не содержит
and $header_subject: does not contains "\320\242\320\225\320\232\320\243\320\250\320\230\320\225 \320\227\320\220\320\232\320\220\320\227\320\253"
then
deliver user2@mydomain
endifСпасибо сказали: