Маршрутизация (mailertable) в exim на FreeBSD

Понадобился мне аналог mailertable из sendmailа, но в eximе.

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

Начинается секция routers с routerа dnslookup, благодаря этому роутеру и определяется маршрутизация в соответствии с MX записи DNS, в нашей ситуации это нам не поможет.

Поэтому мы добавим свой роутер mailrtable перед роутером dnslookup. В итоге у нас получается такая конфигурация

begin routers

mailertable:

driver = manualroute

domains = ! +local_domains

transport = remote_smtp

route_data = ${lookup{$domain}dbm{/usr/local/etc/exim/mailertable.dbm}}

dnslookup:

driver = dnslookup

domains = ! +local_domains

transport = remote_smtp

ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8

no_more

... далее стандартная конфигурация ...

Файл /usr/local/etc/exim/mailertable.dbm получаем так :

Берем любимый редактор и создаем файл

/usr/local/etc/exim/mailertable, такого формата

hilik.org.ua 192.168.0.1

И после этого выполняем команду

exim_dbmbuild /usr/local/etc/exim/mailertable /usr/local/etc/exim/mailertable.dbm

Проверить что у нас получилось можно командой

exim -bt hilik@hilik.org.ua

По итогу мы должны увидеть:

hilik@hilik.org.ua

router = mailertable, transport = remote_smtp

host 192.168.0.1 [192.168.0.1]

Все работает замечательно.

http://www.hilik.org.ua/маршрутизация-в-exim/

Обновлено: 12.03.2015