я работаю в example.net :-) и сервер моей команды назван tardis.example.net . Любая отправляемая нам почта должна сначала пройти через внутренние ретрансляционные узлы нашей компании. Хотя сообщения доставляются на наш сервер правильно, адрес получателя перезаписывается с:
george@tardis.example.net
кому:
george@example.net
В результате наша конфигурация Postfix (2.6.6) по умолчанию отказывается доставлять сообщение:
Nov 27 15:49:23 tardis postfix/qmgr[10564]: B6CC73FA22:
from=<someguy@example.net>, size=3953, nrcpt=1 (queue active)
Nov 27 15:49:24 tardis postfix/smtp[10580]: B6CC73FA22: to=<george@example.net>,
orig_to=<george@tardis.example.net>,
relay=outbound.example.net[172.30.113.194]:25,
delay=0.71, delays=0.47/0.01/0.14/0.1, dsn=5.1.1, status=bounced
(host outbound.example.net[172.30.113.194] said:
550 5.1.1 <george@example.net>... User unknown (in reply to RCPT TO command))
Моим решением было изменить main.cf следующим образом:
myhostname = tardis.example.net
mydomain = example.net
mydestination = $myhostname, localhost.$mydomain, localhost
к этому:
myhostname = tardis.example.net
mydomain = example.net
mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost
Это прекрасно работает; Принимая почту для $ mydomain, tardis.example.net теперь принимает входящую почту, даже если получатель изменен на george@example.net
Проблема, однако, в том, что вся исходящая почта с нашего сервера на @ example.net теперь обрабатывается как локальная почта. Вместо того, чтобы быть перенаправленным на $ relayhost (outbound.example.net), Postfix пытается доставить его локальному пользователю на tardis.example.net.
Как я могу настроить наш сервер для приема входящей почты @ example.net, но отправки ВСЕХ исходящих сообщений на $ relayhost (за возможным исключением исходящей почты, предназначенной для @ tardis.example.net, которая является единственной вещью, которая должна быть доставлена локально )?
Я просмотрел FAQ по ретрансляции почты и различные параметры, связанные с ретрансляцией, в документации, но не нашел ничего, что могло бы мне помочь.
Если вам нужна дополнительная информация о конфигурации, я буду рад ее предоставить. Спасибо всем, кто может помочь.
Ага! Да, ты прав, Исмут - я не понял разницы между to
и orig_to
строка исходила от Postfix, а не от вышестоящего почтового хоста. В данном случае стандартный дистрибутив Postfix, загруженный на наш сервер компанией, содержал строку:
masquerade_domains = example.net
который, конечно, снял бит "тардис" и превратил george@tardis.example.net
в george@example.net
.
Решением было удалить эту строку, а затем удалить $ mydomain из mydestination
директива. Задача решена. Спасибо за помощь!