Sendmail как вторичный почтовый сервер?

Возможно ли настроить sendmail так, чтоб для указанных учетных записей почта пересылалась на другой почтовый сервер, который обслуживает тот же домен что и sendmail, а для всех остальных принималась локально как обычно.


Или же как вариант, можно ли настроить sendmail так, чтоб для указанного домена почта отправлялась через внешний сервер, но при этом входящая почта, для этого домена, принималась как обычно.


Глобальная задача — перенести все аккаунты на новый сервер на Zimbra но т.к. одномоментно перенести все ящики не могу, то нужно сделать старый сервер вторичным (или новый вторичным, но проблемы остаются абсолютно те же) и постепенно выполнить переход на новый сервер.


Со стороны Zimbra все понятно, имеется достаточно инструкций к примеру Split Domain, а вот как настроить sendmail не понятно. Изучение документации по sendmail и активный поиск в сети не принесли к сожалению положительных результатов.
  • Вопрос задан
  • 5686 просмотров
Решения вопроса 1
Hatifnatt
@Hatifnatt Автор вопроса
В итоге пришел к такому решению.
На 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 сервер который его и примет.

Далее начинаем переносить пользователей, шаги следующие:
  1. Создаем пользователя на Zimbra сервере user@mydomain.tld
  2. На Sendmail сервере настраиваем форвардинг почты на user@tmp.mydomain.tld
  3. Переносим всю почту для пользователя со старого сервера на новый с помощью, к примеру, imapsync
  4. Перенастраиваем клиентское ПО для использования нового сервера, т.к. я менял имена учетных записей это в любом случае пришлось бы делать.

Таким образом получаем следующую последовательность прохождения письма для перенесенного аккаунта
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 вполне управляется из командной строки.

После того как все учетные записи перенесены остается несколько действий.
  1. Изменить MX записи для основного домена чтоб они вели на Zimbra сервер.
  2. Удалить правила, что прописывали выше для пересылки писем для не локальных аккаунтов на другой сервер
    zmprov md mydoman.tld zimbraMailCatchAllAddress ""
    zmprov md mydoman.tld zimbraMailCatchAllForwardingAddress ""
    zmprov md mydoman.tld zimbraMailTransport lmtp:zimbra.mydomain.tld:7025


Возможно подробности в которых я все описал избыточны, но лично у меня все эти почтовые потоки никак в голове не укладывались, вероятно кому-то еще такая подробность тоже не помешает. Ссылка на Zimbra Wiki в нагрузку, там есть важное замечание про зацикливание писем при не корректной настройке.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
foxmuldercp
@foxmuldercp
Системный администратор, программист, фотограф
Можно еще настроить, например алиасами и форвардом/копией почты на сендмейле на новый почтовик.
и потихоньку перетягивать клиентов на зимбру, после чего потом поменяете делаете зимбру через ip адрес или дн боевым МХ и старый тушите
Ответ написан
foxmuldercp
@foxmuldercp
Системный администратор, программист, фотограф
эм. вариант релея чем не устроил?
конфигами не подскажу, но на одной из работ сендмыло чистило спам после чего отдавало все мыло на екчендж.
Может быть внутри таки было толи loc, толи tld, которое на сендмыле менялось на blabla.com
Ответ написан
Комментировать
Hatifnatt
@Hatifnatt Автор вопроса
Ну похоже придется все же использовать дополнительный, временный домен для пересылки, не могу найти решения чтоб sendmail пересылал часть почты на другой сервер с таким же доменом.
Ответ написан
Комментировать
@9erhard
Делал нечто подобное в 2009г как раз для перехода на Zimbra. Только нужно уметь писать руками правила в sendmail, стандартными опциями не решить. Насколько помню, в наборе правил обработки локальных адресов sendmail добавлял к доменной части адреса на конверте произвольную метку. Затем отправлял письма с данной меткой на хост с Zimbra. После чего другим правилом снимал метку, для локальной доставки. Подробнее увы рассказать уже вряд ли смогу.
Sendmail вообще устроен как универсальный парсер, умея писать под него правила можно реализовать любую логику. Правда в наше время это уже не актуально.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы