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: