URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 96141
[ Назад ]

Исходное сообщение
"Exim + Dovecot хитрый редирект писем"

Отправлено masters , 21-Май-15 10:49 
Есть сервер на Centos. Стоит Exim + Dovecot + PostfixAdmin. База MySql.

Стоит очень дурацкая задача:
есть 1 ящик (ящик1). На нем стоит пересылка на 2 внешних ящика (ящик2, ящик3).
если приходит письмо на ящик1, то оно должно продублироваться на ящик 2 и 3.
но если письмо приходит на ящик1 с ящика2, то оно должно продублироваться только на ящик3. и наоборот.
При этом в продублированном письме нужно подменить заголовки Reply-to и From на ящик1. А в том письме, которое сохранится в локальном ящике - заголовки должны остаться старые.

Что сделано:
в routers сделал условия, что письма с ящика2 на ящик1 пересылаются только на ящик3 и наоборот:

onebox1:
driver = redirect
allow_fail
allow_defer
condition = ${if and {{eq{$sender_address}{ящик2}}{eq{$local_part@$domain}{ящик1}}}}
data = ящик3, ящик1

В фильтрах сделал подмену заголовков:

if $sender_address matches "ящик2" and $recipients matches "ящик1"
then
    headers remove "Return-path"
    headers add "Return-path: <ящик1>"
    headers remove "From"
    headers add "From: <ящик1>"
endif

Что не получилось:
в локальный ящик письмо сохраняется с подмененными заголовками (From: ящик1).
Удалось подменить назад Reply-To, указав в секции routers у довекота: return_path_add

А вот как изменить From, после прохода секции routers - не знаю :(

Может в фильтрах добавить какой-то заголовок, например From-Old. А потом уже силами довекота его обработать?


Содержание

Сообщения в этом обсуждении
"Exim + Dovecot хитрый редирект писем"
Отправлено masters , 28-Май-15 21:48 
Сам решил вопрос, всем спасибо.



"Exim + Dovecot хитрый редирект писем"
Отправлено Аноним , 30-Май-15 13:09 
> Сам решил вопрос, всем спасибо.

Было бы неплохо, если бы поделился решением с другими.