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

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

Добавлено: 2010-03-19 17:50:00
storm
На данный момент есть 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?

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

Добавлено: 2010-05-16 20:14:12
Alex Keda
с отладкой запустите.
сразу будет всё понятно

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

Добавлено: 2010-05-18 17:40:40
storm
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

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

Добавлено: 2020-05-18 16:39:23
visomymails
крутил вертел я Вашу заготовку.
переадресовать у меня получилось но вот что бы "на ящик user@mydomain не приходит ничего"
на него приходит тоже
в виду того что фильтр работает как пересылка сохраняя в исходном ящике письма в нашем случае user@mydomain