Posts tagged: почта

Окт 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.