Hello Stephan,
First of all, thanks for time you spent implementing this useful extension.
I have found some ugly behavior with such config:
sieve_extensions = +notify +spamtest sieve_spamtest_status_type = score sieve_spamtest_status_header = X-Spam-Scan-Score: (-?[[:digit:]]+\.[[:digit:]]) sieve_spamtest_max_value = 10
Sieve: require ["fileinto","envelope","imap4flags","spamtest","relational","comparator-i;ascii-numeric"]; # rule:[spam] if anyof (spamtest :value "ge" :comparator "i;ascii-numeric" "6") { fileinto "Spam"; }
If X-Spam-Scan-Score have 6-9 digit after dot - the first one ignored, thus X-Spam-Scan-Score: 3.6 -> "ge" skips. #right X-Spam-Scan-Score: 3.8 -> "ge" works. #wrong X-Spam-Scan-Score: 5.9 -> "ge" works. #wrong X-Spam-Scan-Score: 6.0 -> "ge" works. #right X-Spam-Scan-Score: 6.9 -> "ge" works. #right X-Spam-Scan-Score: 7.3 -> "ge" works. #right
If the rule modified to (spamtest :value "ge" :comparator "i;ascii-numeric" "6.0") everything works as expected.
One more thing - sieve-test. I couldn't test my scripts with it:
# sieve-test -x +spamtest -t sieve spam.txt 00000007: SPAMTEST test 00000007: spamtest: extension not configured 00000013: JMPFALSE (false)
Performed actions:
(none)
Implicit keep:
- store message in folder: INBOX
Info: final result: success