On 2008-11-24 at 16:49 +0100, Christian Meutes wrote:
> what could be the reason that $spam_score is set but $spam_score_int isn't?
That's not happening.
> acl_check_data:
>
> warn message = X-Spam-Score: $spam_score ($spam_bar)
> spam = nobody:true
> warn message = X-Spam-Report: $spam_report
> spam = nobody:true
>
> deny message = Classified as spam (score
> $spam_score)\nX-Spam-Report:$spam_report
> condition = ${if >{$spam_score_int}{400}{1}{0}}
> spam = nobody:true/defer_ok
Your condition is true for scores greater than 40.0 (and 40.0 itself is
not large enough, I suspect >= would be closer).
> 1873 processing "deny"
> 1873 check condition = ${if >{$spam_score_int}{400}{1}{0}}
> 1873 = 0
> 1873 deny: condition test failed
> 1873 processing "accept"
> 1873 accept: condition test succeeded
> 1873 >>Headers added by DATA ACL:
> 1873 X-Spam-Score: 10.3 (++++++++++)
So $spam_score is 10.3, thus $spam_score_int will be 103. 103 is not
greater than 400, so the ${if <condition> } took the 'else' branch,
resulting in 0.
If you use -d+expand you'll see the expansion broken down into more
detail.
-Phil