Код: Выделить всё
# Рубаем тех, кто не пишет отправителя
deny condition = ${if eq{$sender_address}{}{yes}{no}}
hosts = !127.0.0.1 : !localhost : !192.168.5.103 : !192.168.1.162 : !192.168.0.29 *
message = "Why HELO empty?! Not RFC..."
## Рубаем тех, кто не пишет отправителя (пробел)
deny condition = ${if match{$sender_address}{\N^\s+$\N}{yes}{no}}
hosts = !127.0.0.1 : !localhost : *
message = "Why HELO empty? (only spaces)?! Not RFC..."
Вот какие варианты пробовал:
1. объявляем переменные
Код: Выделить всё
hostlist whitelist = /etc/exim4/whitelist
addresslist whitelisted = wildlsearch;/etc/exim4/whitelist
Код: Выделить всё
accept senders = +whitelisted

2. пробовал вот такое правило сварганить, опять таки же поставив его перед остальными проверками.
Код: Выделить всё
accept
condition = ${lookup{$sender_address_domain}lsearch{/etc/exim4/whitelist}{yes}{no}}
hosts = !+relay_from_hosts : *
logwrite = domain of $sender_address is in white domain list. message to $local_part
add_header = X-White-Domain: YES
3. пробовал в качестве исключения для всех денай правил делать вот такое указание на файл
Код: Выделить всё
# Считаем число точек в helo, если меньше одной - deny
deny condition = ${if !match{$sender_helo_name}{\N\w\.\w\N}{yes}{no}}
!senders = :
hosts = !+relay_from_hosts : !128.1.2.200 : !${if exists{/etc/exim4/whitelist}{/etc/exim4/whitelist}{}} : *
message = "Не бывает HELO без точек"
Посоветуйте, как правильно сделать?