[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

postfix и переписывание адреса отправителя



Подскажите более универсальный способ переписывания адреса отправителя.

Хочу из адресов вида login@host.domain получать name.surname@domain.
Казалось бы, всё просто, но есть один нюанс.

Урезать host.domain до domain элементарно: используем маскарадинг.

Из login получаем name.surname с помощью канонизации. И вот тут
начинается самое интересное: т.к. почтовые пользователи живут в LDAP
(samba4), то используется виртуальный домен (domain нет в
$mydestination), поэтому в списках преобразования адресов надо
использовать полный адрес. Но адреса проходят канонизацию _до_
маскарадинга.

Таким образом возможные варианты в списках преобразования адресов:
1) "login@host.domain name.surname@domain" -- плюсы: можно
использовать хэши (db, cdb); недостаток в том, что нужно указывать все
возможные host для каждого login.
2) "login@(.+)?.domain name.surname@domain" -- плюс: не нужно
указывать имена узлов; минус: используются регулярки (regexp, pcre).

Ещё можно пропатчить postfix, чтобы маскарадинг выполнялся до
канонизации, тогда в таблицах можно использовать записи вида
"login@domain name.surname@domain". Тогда доставку виртуалам сделать
через fallback_transport и определить $myorigin как domain,  и тогда
записи канонизации примут вообще хороший вид "login name.surname".

Но неужели нет более простого способа? Три дня перечитываю
документацию, и не могу найти ничего подходящего...

Reply to: