Я пытаюсь заставить Exim работать таким образом, чтобы он переписывал сообщения, которые остаются в LAN, иначе, чем те, которые отправляются на внешние серверы.
Можно просто переписать каждое сообщение, но это загромождает сообщения для локального использования.
Внутренняя перезапись будет
*@*.localnet xeross-mail@server01.localnet T
И исходящий был бы
*@*.localnet $1.$2@valid.domain.tld
Что приведет к тому, что someuser@someserver.localnet станет someuser.someserver@valid.domain.tld?
В этом ответе не так много подробностей, извините, но это начало, и либо я расширю его, либо кто-то другой сможет.
Вам необходимо изменить маршрутизатор, который обычно обрабатывает всю нелокальную почту (dnslookup), чтобы он также исключал почту для других хостов внутри вашей сети. Затем вам нужно добавить новый маршрутизатор для обработки этой почты и направить ее на новый транспорт. В новом транспорте вы можете добавить определенные правила перезаписи, которые затем будут влиять только на внутреннюю почту.
Что-то вроде (непроверено),
маршрутизатор (должен быть перед маршрутизатором dnslookup, чтобы он сначала обрабатывал локальные сообщения) -
mynet:
driver = dnslookup
domains = localnet
transport = mynet_smtp
транспорт -
mynet_smtp:
driver = smtp
headers_rewrite = *@*.localnet xeross-mail@server01.localnet
remote_smtp:
driver = smtp
headers_rewrite = *@*.localnet $1.$2@valid.domain.tld