Exim во FreeBSD, список разрешенных отправителей

Появидась такая задача: разрешить отправку за пределы локального домена, только некоторым, emailы которых занесены в особый, утвержденный руководством список. Взял я exim и начал крутить, в итоге вот что получилось, приведенный код втавлять в начало acl_check_rcpt:

#По умолчанию никому не разрешено

#отправлять за пределы нашего домена

warn set acl_c4 = ${eval:0}

#Разрешаем отправку к локальным пользователям

warn domains = +local_domains

set acl_c4 = ${eval: 1}

#Разрешаем отправку пользователям описанным

#в файле /usr/local/etc/exim/sendertable.dbm

warn message = sender $sender_address

domains = !+local_domains

condition = ${if eq {${lookup{$sender_address}dbm{/usr/local/etc/exim/sendertable.dbm}}{yes}}

set acl_c4 = ${eval:1}

#Разрешаем отправку от пустого пользователя(всякие почтовые отлупы)

warn message = empty sender

domains = !+local_domains

condition = ${if eq {$sender_address}{}}

set acl_c4 = ${eval:1}

#А тут у нас непосредственная блокировка отправок тех кому не разрешено

#В предыдущих строках осуществлялась проверка и установка флагов

deny message = Not allowed sender

domains = !+local_domains

condition = ${if eq {$acl_c4}{0}}

/usr/local/etc/exim/sendertable.dbm получается так, создаем файл

/usr/local/etc/exim/sendertable такого формата:

hilik@hilik.kiev.ua yes

Потом делаем:

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

остается перезапустить exim.

http://www.hilik.org.ua/exim-список-разрешенных-отправителей/

Обновлено: 12.03.2015