Victor Ustugov пишет:
>> в данном случае как минимум нужно начать с:
>> 1. контроля сборки конфига эксима (в acl_check_rcpt_before_accept
> должен быть добавлен механизм вставки записей в кеш автовайтлиста,
да, есть в готовом конфиге...
acl_check_rcpt_before_accept:
warn set acl_m0 = no
warn hosts = +relay_from_hosts
set acl_m0 = yes
warn authenticated = *
set acl_m0 = yes
warn sender_domains = +local_domains : +relay_to_domains
condition = ${if
eq{$sender_address_local_part}{postmaster}{no}{yes}}
condition = ${if eq{$local_part}{postmaster}{no}{yes}}
condition = ${if eq{$sender_address}{}{no}{yes}}
condition = $acl_m0
set acl_m1 = ${if eq{${lookup
sqlite{/var/spool/exim/db/awl.db SELECT expires FROM awl WHERE
recipient="${quote_sqlite:$sender_address}" AND
sender="${quote_sqlite:$local_part@$domain}" AND expires >
$tod_epoch;}}}{}{\
${lookup sqlite{/var/spool/exim/db/awl.db INSERT
INTO awl (recipient, sender, expires) VALUES
("${quote_sqlite:$sender_address}",
"${quote_sqlite:$local_part@$domain}", $tod_epoch+60*60*24*2);}}\
}{\
${lookup sqlite{/var/spool/exim/db/awl.db UPDATE awl
SET expires = $tod_epoch+60*60*24*2 WHERE
recipient="${quote_sqlite:$sender_address}" AND
sender="${quote_sqlite:$local_part@$domain}";}}\
}}
accept
> в acl_check_rcpt должен быть добавлен механизм проверки записи из кеша
> автовайтлиста)
acl_check_rcpt:
...
warn condition = ${if eq{$acl_m0}{}{yes}{no}}
set acl_m0 = ${lookup sqlite{/var/spool/exim/db/awl.db SELECT
expires FROM awl WHERE recipient="${quote_sqlite:$local_part@$domain}"
AND sender="${quote_sqlite:$sender_address}" AND expires > $tod_epoch;}}
condition = ${if eq{$acl_m0}{}{no}{yes}}
condition = ${if <{$acl_m0}{$tod_epoch}{yes}{no}}
set acl_m0 =
accept condition = ${if eq{$acl_m0}{}{no}{yes}}
set acl_m9 = white_list_compat=1 $acl_m9
set acl_m_wl_flag_msg = white_list_compat=1 $acl_m_wl_flag_msg
acl
...
>> 2. тестирования добавления записи в кеш автовайтлиста путем имитации
> отсылки письма из локалки или от аутентифицированного пользователя.
>Отправлял, не имитируя, а реально и смотрел содержимое awl.db - адреса
тестируемых отправителя и получателя присутсвуют. Да и вообще регулярно
пополняется файл.
> 3. проверки содержимого кеша автовайтлиста.
>Проверяю... См. выше.
> 4. тестирования проверки записи в кеше автовайтлиста путем имитации
> приема письма из внешнего мира.
>Вот с этим сложнее... Похоже, проверка не происходит... Во всем выводе
дебага не встречается awl.db.
> тот пятистрочный фрагмент дебагового вывода эксима в отрыве от
> остальных данных говорит лишь о том, что письмо не было акцептнуто до
> фильтров на основании ни одного из используемых критериев.
>>Я стараюсь разобраться в сторонней разработке, и на сегодняшний день
даже удается что-то докрутить вручную после сборки, не все так запущено,
ИМХО...
Мощный инструмент и отказываться не планирую) Потестирую еще...