Окт 18 2008

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

Понадобился мне аналог 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]

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


Украинская Баннерная Сеть