В итоге пришел к такому решению.
На Zimbra сервере был настроен алиас для переносимого домена, т.е. допустим домен
mydoman.tld, в настройках добавляем к нему алиас
tmp.mydomain.tld таким образом все пользователи получают e-mail адрес на домене-алиасе.
Для домена-алиаса прописываем MX записи ведущие на Zimbra сервер.
На Zimbra сервере организуем пересылку всех писем для нелокальных аккаунтов на основной сервер, делается это следующими командами, выполнять их надо от имени пользователя
zimbra
:
zmprov md mydoman.tld zimbraMailCatchAllAddress @mydoman.tld
zmprov md mydoman.tld zimbraMailCatchAllForwardingAddress @mydoman.tld
zmprov md mydoman.tld zimbraMailTransport smtp:mail.mydoman.tld
После этого Zimbra сервер при получении (или отправке) письма на нелокальный аккаунт на домене mydomain.tld будет пересылать это письмо на Sendmail сервер который его и примет.
Далее начинаем переносить пользователей, шаги следующие:
- Создаем пользователя на Zimbra сервере user@mydomain.tld
- На Sendmail сервере настраиваем форвардинг почты на user@tmp.mydomain.tld
- Переносим всю почту для пользователя со старого сервера на новый с помощью, к примеру, imapsync
- Перенастраиваем клиентское ПО для использования нового сервера, т.к. я менял имена учетных записей это в любом случае пришлось бы делать.
Таким образом получаем следующую последовательность прохождения письма для
перенесенного аккаунта
Internet ->
Sendmail ->
Forwarding to Zimbra ->
Accept and store to mailbox by Zimbra
Для
не перенесенного аккаунта
Internet ->
Accept and store to mailbox by Sendmail
Для отправленного с Zimbra письма на
не перенесенный аккаунт
Zimbra ->
Account not local, finds domain transport setting ->
Forwarding to Sendmail
Для отправленного с Zimbra письма на
перенесенный аккаунт
Zimbra ->
Account local ->
Accept and store to mailbox by Zimbra
Таким образом мы имеем 2 работающих сервера и спокойно можем переносить аккаунты хоть поштучно, в моем случае аккаунтов было не много, поэтому большинство действий выполнял вручную, но вообще все можно автоматизировать конечно Zimbra вполне управляется из командной строки.
После того как все учетные записи перенесены остается несколько действий.
- Изменить MX записи для основного домена чтоб они вели на Zimbra сервер.
- Удалить правила, что прописывали выше для пересылки писем для не локальных аккаунтов на другой сервер
zmprov md mydoman.tld zimbraMailCatchAllAddress ""
zmprov md mydoman.tld zimbraMailCatchAllForwardingAddress ""
zmprov md mydoman.tld zimbraMailTransport lmtp:zimbra.mydomain.tld:7025
Возможно подробности в которых я все описал избыточны, но лично у меня все эти почтовые потоки никак в голове не укладывались, вероятно кому-то еще такая подробность тоже не помешает. Ссылка на
Zimbra Wiki в нагрузку, там есть важное замечание про зацикливание писем при не корректной настройке.