У меня есть несколько разных серверов, на которых работают разные ОС, и каждый обрабатывает электронную почту для определенных доменов. Поскольку у меня есть только один общедоступный IP-адрес для них, я хотел бы настроить свой сервер на базе CentOS таким образом, чтобы он принимал только входящие сообщения для определенных доменов из внешнего мира, а затем ретранслировал эти сообщения на соответствующий внутренний сервер на основе домена получателя.
Я не хочу взламывать DNS для этого. Я знаю, что могу просто создавать зоны на сервере CentOS с записями MX, указывающими на правильные внутренние адреса, но это немного путаница. Мне нужна эта машина, чтобы продолжать использовать общедоступные версии зон каждого домена, так что это не вариант. В качестве примечания, все правильные записи MX уже указывают на мой общедоступный IP-адрес.
Я немного читал об умных таблицах и вроде проверяется только домен отправителя. Я могу ошибаться в этом, поэтому не исключаю этого.
Возможно ли такое решение с помощью Sendmail? Если да, то какие параметры конфигурации и функции позволят мне это сделать? Образцы были бы очень признательны.
Мы делаем именно это.
Вам нужно сделать записи в двух файлах конфигурации.
Сначала введите домены, на которые вы собираетесь ретранслировать /etc/mail/relay-domains
, по одному в строке. Включите любые вариации.
Во-вторых, в /etc/mail/mailertable
, вы должны указать sendmail, что делать с почтой, предназначенной для этого домена.
Пример:
/etc/mail/relay-domains
:
exampledomain.com
otherdomain.com
/etc/mail/mailertable
:
exampledomain.com relay:mailboxes.exampledomain.com
Не забудьте запустить make in /etc/mail
так что изменения на mailertable
вступят в силу.
Обратите внимание: если вы не введете запись в mailertable
для домена он обратится к DNS и попытается отправить на «лучший» MX; если DNS бесполезен, он попытается доставить почту локально (и потерпит неудачу, если вы не исправили /etc/mail/local-host-names
).