URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 97857
[ Назад ]

Исходное сообщение
"accept и warn в Exim"

Отправлено kazak_0001 , 12-Май-22 12:52 
Добрый день!

Помогите разобраться:

addresslist whitelist = lsearch*@;CONFIG_PREFIX/whitelist

в whitelist'e *@aol.com (например)

acl_check_rcpt:
   Конструкция:
   accept senders = +whitelist
   - работает.
  
   Конструкция:
   warn senders = +whitelist
                  log_message = testovoe_s
   - пропускается и выполняются правила следующие за ней.

Из документации по Exim'у немного не понял... Через warn-же выполняются условия и в зависимости от + или !+
можно записать сообщение в log например. Через accept (я так понял) сообщение в log записать нельзя.

Такая, вот, штука... Не могу понять, почему не работает конструкция warn senders = ...


Содержание

Сообщения в этом обсуждении
"accept и warn в Exim"
Отправлено Тот Самый , 12-Май-22 22:00 
> Добрый день!

И вам доброго!
>Из документации по Exim'у немного не понял

Не мудрено :-) Документация exim - это что-то!
>Помогите разобраться:

Совсем конспективно

В exim есть много ACL, например, acl_check_rcpt.
ACL состоит из последовательности правил, которые исполняются по порядку.
Каждое правило состоит из набора условий/действий и обязательно содержит код выхода: accept, drop, defer, require, warn.
Когда срабатывает условие какого-либо правила, в случае если у этого правила код выхода один из: accept, drop, defer, require, ПРЕКРАЩАЕТСЯ дальнейшее исполнение всего этого ACL с результатом, соответствующим коду выхода.
Срабатывание правила с кодом выхода warn НЕ ПРЕКРАЩАЕТ дальнейшего исполнения этого ACL (выхода из ACL не происходит).
Правила warn действительно могут использоваться для записи в лог по срабатыванию некоторого условия, или даже безусловно (warn log_message = testovoe_s). Помимо этого, правила warn могут применяться для установки переменных (warn set acl_c_dkim_stat=0) с продолжением исполнения ACL

>Через accept (я так понял) сообщение в log записать нельзя

Не верно.
log_message = ..... можно добавить в ЛЮБОЕ правило (accept, drop, defer, require, warn). Запись в лог произойдет при срабатывании этого правила.


"accept и warn в Exim"
Отправлено Тот Самый , 12-Май-22 22:34 
UPD

Правило require прекращает исполнение ACL только в случае, если его условия не выполняются. При исполнении условия require выхода из ACL не происходит