Conditional expressions (if/else) or rule-negations in milter-greylist?
2013-10-02 by Jim Klimov
Hello all, I wonder if there is a simple way that I missed to have an ACL rule hit if the specified criteria are NOT met? For example, a mail server mostly interacts with counterparts from its own country (say, we favor ".ru", ".su" and ".com"). We thus believe that messages from .de, .tr, .br, .fr, .bg, .pl and the other two hundred TLDs are most likely spam - for this server at least. So we want them delayed until a MUCH later retry (8 hours? 24?) and if by then they are not in a DNS RBL - accept. With new milter-greylist features regarding assignable variables and math, I can count scores for "spam suspicion", so I want to add a few points to sources (from, domain) which are not among the implicitly more trusted domains. Later, based on accumulated score, I will delay some sources more, some less, in the greylist. Logically, one way would be with conditionals (if source is trusted; then racl ... ; ELSE racl continue set spam_score+=1; fi), or with negations (racl continue NOT list "good_source" set spam_score+=1). Is there anything to do this today, or "patches are welcome"? ;) Thanks, //Jim