Пересылка почты в зависимости от получателя и темы

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
storm
рядовой
Сообщения: 48
Зарегистрирован: 2008-09-26 16:04:39
Откуда: Киев
Контактная информация:

Пересылка почты в зависимости от получателя и темы

Непрочитанное сообщение storm » 2010-03-19 17:50:00

На данный момент есть The bat который пересылает почту. Главное преимущество – наглядность интервейса при создании правил. Недостатки очевидны. Хочу пересылать почту самим эксимом.

Пример: письмо адресовано mailtest@mydomain. Если в теме есть “инфо” то пересылается на 1@mydoman, 2@mydomain, если в теме info или price, то на 3@mydomain, если отправитель test@domain, то на 4@mydomain, если тема не содержит price то на 5@mydomain все остальное на 6@local_domain. При этом вся почта адресованная mailtest@mydomain пересылается на 7@mydomain.

Для теста создал файл mail_forward.conf

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

# Exim filter

if $local_part is mailtest then
    deliver 1@mydomain
    deliver 2@mydomain
endif
В конфиге эксима прописал

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

# Системный фильтр которым форвардим почту
system_filter = /etc/exim4/mail_forward.conf
К сожалению фильтр не работает. Возможно необходимо в роутере userforward: указывать allow_filter?

Буду блогодарен если выложите свои работающие примеры фильтров.

P.S. Нет ли удобного интерфейса для конечного пользователя, который правила пересылки привык создавать в the bat?

Хостинговая компания 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/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35066
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Пересылка почты в зависимости от получателя и темы

Непрочитанное сообщение Alex Keda » 2010-05-16 20:14:12

с отладкой запустите.
сразу будет всё понятно
Убей их всех! Бог потом рассортирует...

Аватара пользователя
storm
рядовой
Сообщения: 48
Зарегистрирован: 2008-09-26 16:04:39
Откуда: Киев
Контактная информация:

Re: Пересылка почты в зависимости от получателя и темы

Непрочитанное сообщение storm » 2010-05-18 17:40:40

Alex Keda писал(а):с отладкой запустите.
сразу будет всё понятно
Да, собственно, решил уже давно. Если кому интересно...

Приведу пример фильтра. Например, необходимо форвардить почту пришедшую с ящика user@gmail.com на ящик user@mydomain на несколько ящиков моего домена. При этом если тема содержит ТЕКУШИЕ ЗАКАЗЫ, то почта форвардится на user1@mydomain, user2@mydomain и при этом также приходит на user@mydomain. Если же не содержит тему ТЕКУШИЕ ЗАКАЗЫ, то форвардится на на ящики user3@mydomain, user4@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
    unseen deliver user2@mydomain
elif $sender_address: contains "user@gmail.com" and
    $recipients: contains "user@mydomain" and
#does not contains - не содержит
     $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
    unseen deliver user3@mydomain
    deliver user4@mydomain
endif