Golub Mikhail wrote:
> Спасибо.
> Я пробовал с подобным "костылем", но почему-то не доделал :(
он более-менее универсальный.
сработает в любой ситуации, когда из-за временной ошибки лукапа
переменной не присваивается ни один из вариантов новых значений.
поэтому его можно использовать не только с dnsdb.
но тут есть ньюанс. в случае, если лукап не вернет значения, переменной
присваивается пустое значение. если лукап найдет запись с пустым
значением, переменной тоже будет присвоено пустое значение.
в случае с dnsdb это не актуально.
в случае других лукапов можно немного переделать костыль:
acl_check_connect:
warn acl = acl_check_rdns
acl_check_rcpt:
deny condition = ${if eq{$acl_c_rdns}{fail}{yes}{no}}
log_message = DENY
warn condition = ${if eq{$acl_c_rdns}{defer}{yes}{no}}
log_message = GREYLISTING
acl_check_rdns:
warn set acl_c_rdns = defer
set acl_c_rdns = \
${lookup dnsdb{ptr=$sender_host_address}{$value}{fail}}
accept
нужно лишь выбирать предопределенное значение для случаев, когда лукап
ничего не вернул (fail в данном случае) таким, которое не может быть
возвращено самим лукапом.
>> -----Original Message-----
>> From: Exim-users [mailto:[email protected]] On Behalf
>> Of Victor Ustugov
>> Sent: Monday, April 06, 2015 1:30 PM
>> To: Golub Mikhail
>> Subject: Re: [Exim-users] lookup dnsdb - SERVFAIL
>>
>> Golub Mikhail wrote:
>>> host_lookup_failed - немного не то (defer тоже не то для той цели, что я
>>> хочу использовать).
>>> Здесь "истина" будет, если запись в прямой и обратной зоне ДНС не
>> совпадают.
>>>
>>> Я же хочу проверять наличие _любой_ записи в обратной зоне для
>> хоста
>>> отправителя.
>>> Есть - хорошо.
>>> Нет - плохо.
>>> Но под "нет" попадают и ошибки резолвинга.
>>>
>>> warn set acl_c_rdns = ${lookup
>>> dnsdb{defer_never,ptr=$sender_host_address}{$value}fail}
>>
>> тогда можно использовать дополнительный acl в качестве костыля:
>>
>> acl_check_rcpt:
>>
>> warn acl = acl_check_rdns
>> deny condition = ${if eq{$acl_c_rdns}{}{yes}{no}}
>> log_message = DENY
>> warn condition = ${if eq{$acl_c_rdns}{defer}{yes}{no}}
>> log_message = GREYLISTING
>>
>>
>> acl_check_rdns:
>> warn set acl_c_rdns = defer
>> set acl_c_rdns = \
>> ${lookup dnsdb{ptr=$sender_host_address}{$value}{}}
>> accept
>>
> _______________________________________________
> Exim-users mailing list
> [email protected]
> http://mailground.net/mailman/listinfo/exim-users
>
--
Best wishes Victor Ustugov mailto:[email protected]
public GnuPG/PGP key: http://victor.corvax.kiev.ua/corvax.asc
ICQ UIN: 371808614 JID: [email protected]
nic-handle: CRV-UANIC
_______________________________________________
Exim-users mailing list
[email protected]
http://mailground.net/mailman/listinfo/exim-users