У меня есть пара пользователей почтового сервера Debain Postfix. Все хорошо. Теперь нам нужно поместить некоторых пользователей на размещенный сервер Exchange (Office 365).
Можно ли настроить почтовые серверы и DNS MX для одного домена таким образом, чтобы, если почтовый ящик пользователя не находится на server1, поиск перенаправлялся на server2?
Спасибо Питер
Ну .... нет и да.
Проблема в том, что когда выполняется поиск записи MX DNS, DNS-сервер не знает, кто является пользователем (эта информация не отправляется на DNS-сервер), поэтому DNS-сервер не может отправлять MX-записи, специально предназначенные для некоторые пользователи. Было бы странно (техническая фраза - «нарушение многоуровневости»), чтобы DNS так много знала о ваших пользователях. А что, если бы в письме было 2 человека To:
строка, один был для одного из исходных пользователей, а другой для пользователей Exchange? Это сбивает с толку.
Давайте назовем пользователей, чья электронная почта доставляется на сервер Postfix, «Группа P», а пользователей, которые хотят, чтобы их электронная почта доставлялась в Exchange, «Группа E».
Решение состоит в том, чтобы сервер Postfix доставлял электронные письма группы P локально и пересылал электронные письма группы E на сервер Exchange. Точно так же серверы Exchange должны знать, чтобы доставлять электронные письма группы E локально, а электронные письма группы P необходимо пересылать.
Главное - убедиться, что эти два сервера имеют одинаковую информацию. В противном случае оба сервера будут доставлять сообщения человека локально или (что еще хуже) ни один из них не подумает, что он отвечает за электронную почту, и будет пинг-понг между серверами.
Если группа E короткая (т.е. всего несколько исключений), вы можете сделать это:
Для более крупных конфигураций я рекомендую, чтобы два сервера (назовите их serverE.example.com и serverP.example.com) были настроены для доставки локальной электронной почты для user@serverE.example.com и user@serverP.example.com соответственно, но не доставлять электронную почту локально для user@example.com. Каждый компьютер обращается к базе данных LDAP / ActiceDirectory, которая указывает, что (например) адрес электронной почты tom@example.com доставлен на адрес tom@serverP.example.com, а адрес электронной почты geri@example.com - на адрес geri@serverE.example.com . Таким образом, все будет синхронизировано, и у вас будет только одно место для обновления.
Малоизвестный факт: с постфиксом, если aliases
файл содержит:
tom: tom@serverP.example.com
geri: geri@serverE.example.com
И mydestination mail.cf содержит serverP.example.com
но нет serverE.example.com
, затем напишите на tom
будет доставлен на месте и по почте geri
будет перенаправлен на serverE. Это не создаст петли!
Я поднимаю эту проблему, потому что, прежде чем я это узнал, я написал большой скрипт Perl, который генерировал aliases
файлы для каждого почтового сервера, чтобы (например) tom
не появлялся в aliases
файл для serverP
, просто все остальные. Как только я это узнал, я удалил сценарий. Точно так же aliases
файл мог быть на всех машинах. (Конечно, поскольку Exchange не использует aliases
файлы, на этих серверах необходимо сделать что-то еще.)
Если myorigin = example.com
то исходящее письмо будет иметь "tom@example.com" в From:
линия, и никто не поймет, что есть два почтовых сервера. (Я не знаю эквивалента Exchange, но уверен, что он существует.)
При тестировании этой конфигурации не просто проверяйте, попадает ли входящая электронная почта в нужное место. Также убедитесь, что электронная почта, отправленная от каждого клиента, попадает в нужное место. Например, попросите пользователя Exchange отправить сообщение To: tom, geri
и убедитесь, что оба доставлены. Попросите пользователя Debian сделать то же самое. Я видел ситуации, когда (например) псевдонимы и / или пересылка не были настроены прямо на обеих машинах, и электронные письма доставлялись локально для пользователя. tom
на обоих серверах. tom
приходилось читать электронную почту в обоих местах, пока это не было исправлено. Ой!
Один из способов - заставить Postfix получать всю почту, а затем пересылать ее на сервер Exchange на основе правил / псевдонимов и т. Д.
Как сказали другие пользователи, это то, что известно как совместное использование пространства имен SMTP. Вы упомянули пару пользователей в системе Postfix. Я бы отправил всю электронную почту на сервер Exchange, а затем передал бы электронную почту неизвестных пользователей системе Postfix. Посмотрите в свойствах SMTP по умолчанию. Вам нужно будет найти что-нибудь с надписью «Пересылать всю почту с неразрешенными получателями на хост:».
Если у вас только несколько пользователей в postfix, вероятно, будет проще создать почтовые контакты в Exchange и поместить пользователей postfix во внутренний поддомен.
Вы хотите что-то конкретное, например, маршрутизацию почты через Exchange Online Protection?
Лучшая практика заключается в том, что у вас будет только одна служба в вашей записи MX, а вторая служба должна быть авторизована для отправки почты через основную (коннектор на языке Exchange).
Вы можете отправлять SMTP через обе службы если вы настраиваете SPF для обеих служб для отправки от имени вашего почтового домена.