Stumbled upon a little oddity with SOGo's Vacation rules they are appended to 
the end of the sieve script and end up not  processed if a prior rules have 
stop directives.

For example, I setup a rule to put messages from my gmail account into 
'TESTING' and have a Vacation message enabled everything works as expected. If 
I add a stop directive to the gmail rule the vacation rule does not process.

These rules work in Oder listed:
if anyof (address :contains "from" "joe_u...@gmail.com") {
    fileinto "TESTING";
}

if allof ( not exists ["list-help", "list-unsubscribe", "list-subscribe", 
"list-owner", "list-post", "list-archive", "list-id", "Mailing-List"], not 
header :comparator "i;ascii-casemap" :is "Precedence" ["list", "bulk", "junk"], 
not header :comparator "i;ascii-casemap" :matches "To" "Multiple recipients 
of*" ) {vacation :days 7 :addresses ["yacke...@potsdam.edu"] text:
Testing Vacation rules, please ignore
.
;
}

 tail -f /var/log/maillog | grep 'lda(yacketrj)'
Jun  3 14:21:52 hermes dovecot: lda(yacketrj): sieve: 
msgid=<CAD3YU+=tpw8f7oy898vancd6rtowf9l2izc3qv2osxhxm6k...@mail.gmail.com>: 
stored mail into mailbox 'TESTING'
Jun  3 14:21:52 hermes dovecot: lda(yacketrj): sieve: 
msgid=<CAD3YU+=tpw8f7oy898vancd6rtowf9l2izc3qv2osxhxm6k...@mail.gmail.com>: 
sent vacation response to <ronald.yacke...@gmail.com>


If I add a stop directive to the gmail check then ONLY the gmail rule is 
processed

if anyof (address :contains "from" "joe_u...@gmail.com") {
    fileinto "TESTING";
    stop;
}

Jun  3 14:29:46 hermes dovecot: lda(yacketrj): sieve: 
msgid=<CAD3YU+mB=xa6d-bswc8g62dvp5-2duncsnn3krz9wx_j_ft...@mail.gmail.com>: 
stored mail into mailbox 'TESTING'



Other sieve parsers that I have used in the past always placed the Vacation 
rule at the top of the rule file to ensure it was always processed first.

Will toss a bug/feature in the tracker.



-- 
users@sogo.nu
https://inverse.ca/sogo/lists

Reply via email to