[Sieve] Understand Sieve processing

Stephan Bosch stephan at rename-it.nl
Wed Apr 7 03:02:14 EEST 2021



On 26/03/2021 08:30, h8h wrote:
> Hi,
>
> I have the following configuration:
>
>> cat > /etc/dovecot/conf.d/99-local-sieve.conf << EOF;
>> plugin {
>>  sieve_before = /etc/dovecot/sieve-spam.sieve
>>  sieve_before2 = /mail/sieve/global_before
>>  sieve_after = /mail/sieve/global_after
>>  sieve = /mail/sieve/%d/%n.sieve
>>  sieve_dir = /mail/sieve/%d/%n
>> }
>> EOF
>
>> cat /etc/dovecot/sieve-spam.sieve
>> require ["regex", "fileinto", "imap4flags"];
>>
>> if allof (header :regex "X-Spam-Status" "^Yes") {
>>  fileinto "Spam";
>> }
>
> (I removed the keyword "stop;" to proceed rule processing, which does 
> not work)
>
>
> Now as a user (/mail/sieve/%d/%n.sieve) I want to create my own "Spam" 
> rule:
>> require ["regex","reject"];
>> # rule:[SPAM]
>> if allof (header :regex "x-spam-status" "^Yes")
>> {
>>        reject text:
>> This E-Mail is SPAM.
>> .
>> ;
>> }
>
>
>
> I activate the traces and see the following if the e-mail is SPAM:
>
>>      ## Started executing script 'sieve-spam'
>>   3: jump if result is false
>>   3:   not jumping
>>   4: fileinto action
>>   4:   store message in mailbox `Spam'
>>      ## Finished executing script 'sieve-spam'
>
>
> If the e-mail is not SPAM:
>>      ## Started executing script 'sieve-spam'
>>   3: jump if result is false
>>   3:   jumping to line 4
>>      ## Finished executing script 'sieve-spam'
>>
>>
>>      ## Started executing script 'roundcube'
>>   3: jump if result is false
>>   3:   jumping to line 10
>>      ## Finished executing script 'roundcube'
>
> So my sieve gets only executed if the e-mail is not SPAM. Thats a bit 
> odd.
>
> Could you explain how the sieve processing work and how I can solve 
> this problem?

The fileinto action cancels the implicit keep 
(https://tools.ietf.org/html/rfc5228#section-2.10.2). There is no 
explicit action in sieve-spam either, so Sieve execution ends there:

https://tools.ietf.org/html/draft-degener-sieve-multiscript-00

Regards,

Stephan.


More information about the dovecot mailing list