Назад | Перейти на главную страницу

Exim: Как доставлять почту локально и через ретранслятор SMTP

В настоящее время у меня все электронные письма от eximʻa пересылаются на исходящий сервер STMP в нашей сети. Вот раздел моей конфигурации Exim, который отправляет почту:

send_to_gateway: driver = manualroute transport = remote_smtp route_list = * outbound-stmp.domain.com

Это отлично подходит для электронных писем, которые отправляются на внешние адреса с нашего веб-сервера. Это не работает, когда задания cron отправляют электронное письмо на локальную корневую учетную запись. Эти локальные электронные письма отправляются на наш исходящий сервер и не возвращаются, потому что их нельзя отправить на что-то вроде "root @ localhost".

Возможно ли через Exim отправлять электронные письма, предназначенные для локальных учетных записей, чтобы они оставались на локальной машине, и для любых электронных писем, которые не являются локальными, чтобы они проходили через реле?

Вам необходимо определить маршрутизатор для вашего шлюза, другой маршрутизатор для локальной доставки и условия, в которых они используются.

Итак, чтобы локально доставлять почту, адресованную *.localhost суффикс, определите список доменов local_domains который включает "localhost" и включает domains пункт в первом маршрутизаторе. Exim проверяет domains пункт, чтобы решить, следует ли использовать маршрутизатор.

exim.conf:

...

#                    MAIN CONFIGURATION SETTINGS                     #
domainlist local_domains = @ : localhost : localhost.localdomain : mydomain.com

...

begin routers

...

send_to_gateway:
  driver = manualroute
  domains = !+local_domains
  transport = remote_smtp
  route_list = * outbound-stmp.domain.com

...

localuser:
  driver = accept
  check_local_user
  transport = local_delivery
  cannot_route_message = Unknown user

...

В domains = !+local_domains условие означает "использовать этот маршрутизатор, когда домен не в local_domains список." ! средства не, + означает разыменование следующей переменной / списка