Окт
21
2008
Exim, список разрешенных отправителей.
Появидась такая задача: разрешить отправку за пределы локального домена, только некоторым, 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.