Прежде чем я уточню свой вопрос, мне нужно объяснить текущую настройку.
У нас есть 1 сервер Postfix, который может принимать почту и хранить ее в почтовом ящике. У некоторых наших клиентов есть собственный сервер Exchange, но мы по-прежнему предоставляем ящик POP3 на нашем сервере Postfix. DNS их домена настроен так, чтобы сначала попытаться доставить почту на сервер Exchange, если он не может быть достигнут, доставьте ее на наш сервер Postfix. Если почта доставляется на сервер Postfix, она сохраняется в учетной записи POP3. Когда сервер Exchange снова подключен к сети, он использует POP-Locator для чтения содержимого почтового ящика POP3, загрузки почты и распределения их по почтовым ящикам на сервере Exchange.
Все это работает очень хорошо. Потому что во время простоя клиенты все еще могут входить в нашу веб-почту и читать важную почту. Эту функцию мы хотели бы сохранить.
Однако проблема в том, что большинство клиентов также размещают свои веб-сайты на том же сервере, на котором работает Postfix. Когда программное обеспечение, работающее на этом сервере, пытается доставить почту на один из адресов электронной почты клиента, оно доставляет ее локально. Мы хотим, чтобы Postfix использовал поиск по MX, чтобы увидеть, на какой сервер следует доставлять почту.
Уже давно пытаюсь понять, как это сделать. У меня есть книга Postfix, и я ее прочитал. Поискал много примеров конфигурации и других ресурсов в Интернете.
До сих пор я пытался использовать transport_maps = hash:/etc/postfix/transport
и перечислите там конкретные домены, запустите postmap
чтобы восстановить таблицы поиска и выполнить postfix reload
. Что бы я ни делал, почта доставляется локально.
Чтобы добавить еще немного контекста, мы используем Courier и перечислили все домены в virtual_alias_maps = hash:/etc/postfix/virtual
.
Любая помощь приветствуется.
/ и т. д. / постфикс / транспорт
example.com smtp
/ и т.д. / постфикс / виртуальный
example.com postmaster
@example.com someuseraccount
Причина, по которой вам трудно сделать, заключается в том, что это практически невозможно, поскольку это противоречит модели MTS, используемой Postfix. Почтовые ящики бывают локальными или удаленными; они не могут быть обоими. Локальная машина либо является в Пункт назначения для почты или нет. Классы адресов локального и виртуального домена являются «конечным пунктом назначения», классы адресов удаленного домена («ретранслятор» / «по умолчанию») - нет. Конечным местом назначения для одного почтового ящика не может быть одновременно maildir на локальном компьютере или удаленный транспорт на какой-то другой компьютер. Должно быть одно или другое. Домен является либо локальным, либо размещенным, и в этом случае почта для почтовых ящиков в этом домене доставляется на локальный maildir, который будет забираться POP3, или удаленный, и в этом случае почта для почтовых ящиков в этом домене транспортируется в другой машина так и не доставлялась на месте.
Ваш единственный реальный вариант - запустить два отдельных MTS - два разных экземпляра Postfix. Один из них предоставляет услугу ретрансляции SMTP для Интернета в целом и настроен с указанными доменами как виртуальные домены, размещенные локально, со всей почтой, доставляемой в maildir для последующего извлечения через POP3. Другой обеспечивает sendmail
, postdrop
, и локальная служба отправки SMTP, и настроена с указанными доменами как домены ретрансляции, удаленно размещенные, чья почта должна транспортироваться на сервер Exchange.
Краткое описание: Наличие двух различных и противоречащих друг другу «трактов бумаги» для почты требует наличия двух экземпляров MTS.
Пожалуйста, покажите содержимое вашего файла / etc / postfix / transport. Я не могу сказать, правильный этот файл или нет.
Также, пожалуйста, поясните ... Хотите ли вы, чтобы postfix попытался доставить MX для этих доменов, и только в случае неудачи доставить локально?
Спасибо за дополнительную информацию.
То, что вы хотите сделать, очень сложно, и может быть даже невозможно напрямую. Я думаю, что самый простой способ добиться этого - запустить два экземпляра postfix. Посмотреть здесь http://www.postfix.org/MULTI_INSTANCE_README.html для получения подробной информации.
Вы можете настроить один экземпляр постфикса для приема почты из мира и доставки в локальные почтовые ящики для получения POP3 и т. Д.
Другой экземпляр будет принимать почту от локальных процессов, а затем попытается доставить ее через MX - возможно, даже на первый экземпляр постфикса.
Во втором случае вы отключили бы службу smtp в master.cf, чтобы оба экземпляра не пытались прослушивать порт 25. Для получения всех подробностей прочтите ссылку выше.
Надеюсь, это поможет!