On 17/08/2019 23:09, pille via Exim-users wrote:

i've setup my mail system to use multiple spam engines (spamassassin and
rspamd), similar to what was described in
https://lists.exim.org/lurker/message/20170620.144216.2289dbff.en.html
...

is there any way to detect, if the second spam engine failed?
or is it possible to reset/unset the spam variables before the second run?

My solution is below. Probably it can be improved but you can use it for hints. I have removed some other checks for clarity which could be why I have sub acls where none is apparently needed.

I have two acls that do the checks: acl_rspamd and acl_sa. Variables acl_m_rspamd and acl_m_sa are flags that store successful execution of the spam check. I normalise (or bias) spam_score_int to 100 and store as acl_m_rspamd_score and acl_m_sa_score.

I call these from acl_spam with warn so they just set values. Subsequent warn, defer, deny use the values set previously.

acl_spam is called by acl_check_data with other checks not shown,



acl_rspamd:
  warn
    set acl_m_spamengine = 127.0.0.1 11333 variant=rspamd
    spam = nobody:true
    set acl_m_rspamd = 1
    set acl_m_rspamd_score = ${eval:($spam_score_int*100)/120}
  accept

acl_sa:
  warn
    set acl_m_spamengine = 127.0.0.1 783
    spam = nobody:true
    set acl_m_sa = 1
    set acl_m_sa_score = ${eval:($spam_score_int*100)/70}
  accept

acl_spam:
  warn
    set acl_m_rspamd_score = 0
    set acl_m_rspamd = 0
    acl = acl_rspamd
  warn
    set acl_m_sa_score = 0
    set acl_m_sa = 0
    acl = acl_sa
  defer
    condition = ${if and{{eq{$acl_m_rspamd}{0}} {eq{$acl_m_sa}{0}}} }
    message = Please try again later, spam check is not available
  deny
set acl_m_score = ${eval:($acl_m_rspamd*$acl_m_rspamd_score+$acl_m_sa*$acl_m_sa_score)/($acl_m_rspamd+$acl_m_sa)}
    condition = ${if >={$acl_m_score}{100}{true}{false}}
    message = Message refused as high probability of spam
  warn
    ...
  accept


acl_check_data:
...
  deny
    !acl = acl_spam
...





--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/

Reply via email to