[Dovecot] sieve spamtest extension

Nikita Koshikov koshikov at gmail.com
Sat May 15 16:34:55 EEST 2010


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



More information about the dovecot mailing list