TL; DR: я пытаюсь заставить postfix маршрутизировать почту, отправляемую от локального пользователя, другому локальному пользователю для перенаправления на другой сервер (relayhost). Это не должно относиться к входящей почте с внешнего на локальный.
Я планирую миграцию стека почтового сервера (новый imap и новый smtp на новом оборудовании). В течение ограниченного времени некоторые пользователи будут перенаправлены на текущий сервер, в то время как другие будут постепенно переведены на новый почтовый сервер.
Текущий сервер будет тем, который будет выполнять всю маршрутизацию (а также зарегистрированным в DNS как MX). Когда приходит входящее письмо, оно будет переадресовано или нет на новый сервер в зависимости от почтового адреса получателя. Это нормально работает.
У меня проблема с локальной маршрутизацией исходящей электронной почты (мигрировавший коллега пытается отправить почту неперемещенному коллеге). Если я ничего не сделаю, мигрировавший коллега, отправивший электронное письмо не мигрированному пользователю, увидит свою почту в будущем почтовом ящике немигрированного пользователя. Таким образом, неперемещенный пользователь не получит это письмо, пока я его не перенесу.
Я хочу, чтобы новый Postfix перенаправлял исходящие письма на relayhost
даже если почта "местная". Relayhost - это сервер, указанный в DNS как MX, поэтому маршрутизация будет такой же, как та, которую я использую для входящей почты.
Я играл с transport_maps, но из-за этого входящая почта зацикливалась между старым и новым сервером. Это потому, что transport_maps применяется ко всем электронным письмам (включая входящие из внешних), а не только к отправленным одним локальным пользователем. Маршрутизация должна применяться только к исходящей почте от локальных пользователей, а не ко всей почте.
main.cf:
transport_maps = hash:/etc/postfix/transport
транспорт:
domain.tld smtp:[old-smtp.domain.tld]
Карты ретранслятора, зависящие от отправителя, должны выполнять эту работу.
Увидеть Документация Postfix