How to stop sieve processing to skip sieve_after scripts ?
Hello the list,
I am trying to achieve filter processing using sieve, but i am not sure I can do what I want. I want to let the user decide to use my filtering script (sieve_after) or not.According to the documentation, i am trying to stop processing in user sieve script, but processing continue.
I am using dovecot 2.2 (CentOS). My sieve configuration is:plugin { sieve = /var/vmail/%d/%n/%n.sieve sieve_before = /etc/dovecot/sieve/global-before sieve_after = /etc/dovecot/sieve/global [...]} 'sieve' is the filter script created by users. When trying to stop processing, it is generated by roundcube like:# rule:[deliver to mailbox] if anyof (true) { stop; }
'sieve_after' is the filter which handles the spam processing (fileinto Junk). But the processing continue until all sieve filters are processed: Mar 22 14:50:23 lda(user@example.com): Debug: none: root=, index=, indexpvt=, control=, inbox=, alt=Mar 22 14:50:23 lda(user@example.com): Debug: Destination address: user@example.com (source: -a parameter) Mar 22 14:50:23 lda(user@example.com): Debug: sieve: Pigeonhole version 0.4.2 initializing Mar 22 14:50:23 lda(user@example.com): Debug: sieve: include: sieve_global_dir is not set; it is currently not possible to include `:global' scripts. Mar 22 14:50:23 lda(user@example.com): Debug: sieve: executed before user's personal Sieve script(1): /etc/dovecot/sieve/global-before Mar 22 14:50:23 lda(user@example.com): Debug: sieve: using the following location for user's Sieve script: /var/vmail/example.com/user/user.sieve;name=main script Mar 22 14:50:23 lda(user@example.com): Debug: sieve: executed after user's Sieve script(3): /etc/dovecot/sieve/global Mar 22 14:50:23 lda(user@example.com): Debug: sieve: opening script 1 of 3 from /etc/dovecot/sieve/global-before Mar 22 14:50:23 lda(user@example.com): Debug: sieve: loading script /etc/dovecot/sieve/global-before Mar 22 14:50:23 lda(user@example.com): Debug: sieve: script binary /etc/dovecot/sieve/global-before.svbin successfully loaded Mar 22 14:50:23 lda(user@example.com): Debug: sieve: binary save: not saving binary /etc/dovecot/sieve/global-before.svbin, because it is already stored Mar 22 14:50:23 lda(user@example.com): Debug: sieve: executing script from /etc/dovecot/sieve/global-before.svbin Mar 22 14:50:23 lda(user@example.com): Debug: sieve: opening script 2 of 3 from /var/vmail/example.com/user/user.sieve;name=main script Mar 22 14:50:23 lda(user@example.com): Debug: sieve: loading script /var/vmail/example.com/user/user.sieve;name=main script Mar 22 14:50:23 lda(user@example.com): Debug: sieve: script binary /var/vmail/example.com/user/user.svbin successfully loaded Mar 22 14:50:23 lda(user@example.com): Debug: sieve: binary save: not saving binary /var/vmail/example.com/user/user.svbin, because it is already stored Mar 22 14:50:23 lda(user@example.com): Debug: sieve: executing script from /var/vmail/example.com/user/user.svbin Mar 22 14:50:23 lda(user@example.com): Debug: sieve: opening script 3 of 3 from /etc/dovecot/sieve/global Mar 22 14:50:23 lda(user@example.com): Debug: sieve: loading script /etc/dovecot/sieve/global Mar 22 14:50:23 lda(user@example.com): Debug: sieve: script binary /etc/dovecot/sieve/global.svbin successfully loaded Mar 22 14:50:23 lda(user@example.com): Debug: sieve: binary save: not saving binary /etc/dovecot/sieve/global.svbin, because it is already stored Mar 22 14:50:23 lda(user@example.com): Debug: sieve: executing script from /etc/dovecot/sieve/global.svbin Mar 22 14:50:23 lda(user@example.com): Debug: Namespace : Using permissions from /var/vmail/example.com/user/Maildir: mode=0700 gid=default Mar 22 14:50:23 lda(user@example.com): Info: sieve: msgid=cm.0045046409888.jyshukd.kidudykyhi.r@cmail19.com: stored mail into mailbox 'Courrier indésirable'
I would like to stop processing afterMar 22 14:50:23 lda(user@example.com): Debug: sieve: using the following location for user's Sieve script: /var/vmail/example.com/user/user.sieve;name=main scriptAt the end, I do not want mail to be delivered into Junk, but into INBOX.. Is it possible ? Perhaps a sieve, sieve2 setting exists ? (like sieve_before, sieve_before2 ...) Thank you for your help, ideas :) Best regards, Nicolas
Op 3/22/2018 om 3:30 PM schreef Mr Nicolas Belan:
Hello the list,
I am trying to achieve filter processing using sieve, but i am not sure I can do what I want.
I want to let the user decide to use my filtering script (sieve_after) or not. According to the documentation, i am trying to stop processing in user sieve script, but processing continue.
I am using dovecot 2.2 (CentOS).
My sieve configuration is: plugin { sieve = /var/vmail/%d/%n/%n.sieve sieve_before = /etc/dovecot/sieve/global-before sieve_after = /etc/dovecot/sieve/global [...] }
'sieve' is the filter script created by users. When trying to stop processing, it is generated by roundcube like: # rule:[deliver to mailbox] if anyof (true) { stop; }
'sieve_after' is the filter which handles the spam processing (fileinto Junk).
But the processing continue until all sieve filters are processed:
Mar 22 14:50:23 lda(user@example.com): Debug: none: root=, index=, indexpvt=, control=, inbox=, alt= Mar 22 14:50:23 lda(user@example.com): Debug: Destination address: user@example.com (source: -a parameter) Mar 22 14:50:23 lda(user@example.com): Debug: sieve: Pigeonhole version 0.4.2 initializing Mar 22 14:50:23 lda(user@example.com): Debug: sieve: include: sieve_global_dir is not set; it is currently not possible to include `:global' scripts. Mar 22 14:50:23 lda(user@example.com): Debug: sieve: executed before user's personal Sieve script(1): /etc/dovecot/sieve/global-before Mar 22 14:50:23 lda(user@example.com): Debug: sieve: using the following location for user's Sieve script: /var/vmail/example.com/user/user.sieve;name=main script Mar 22 14:50:23 lda(user@example.com): Debug: sieve: executed after user's Sieve script(3): /etc/dovecot/sieve/global Mar 22 14:50:23 lda(user@example.com): Debug: sieve: opening script 1 of 3 from /etc/dovecot/sieve/global-before Mar 22 14:50:23 lda(user@example.com): Debug: sieve: loading script /etc/dovecot/sieve/global-before Mar 22 14:50:23 lda(user@example.com): Debug: sieve: script binary /etc/dovecot/sieve/global-before.svbin successfully loaded Mar 22 14:50:23 lda(user@example.com): Debug: sieve: binary save: not saving binary /etc/dovecot/sieve/global-before.svbin, because it is already stored Mar 22 14:50:23 lda(user@example.com): Debug: sieve: executing script from /etc/dovecot/sieve/global-before.svbin Mar 22 14:50:23 lda(user@example.com): Debug: sieve: opening script 2 of 3 from /var/vmail/example.com/user/user.sieve;name=main script Mar 22 14:50:23 lda(user@example.com): Debug: sieve: loading script /var/vmail/example.com/user/user.sieve;name=main script Mar 22 14:50:23 lda(user@example.com): Debug: sieve: script binary /var/vmail/example.com/user/user.svbin successfully loaded Mar 22 14:50:23 lda(user@example.com): Debug: sieve: binary save: not saving binary /var/vmail/example.com/user/user.svbin, because it is already stored Mar 22 14:50:23 lda(user@example.com): Debug: sieve: executing script from /var/vmail/example.com/user/user.svbin Mar 22 14:50:23 lda(user@example.com): Debug: sieve: opening script 3 of 3 from /etc/dovecot/sieve/global Mar 22 14:50:23 lda(user@example.com): Debug: sieve: loading script /etc/dovecot/sieve/global Mar 22 14:50:23 lda(user@example.com): Debug: sieve: script binary /etc/dovecot/sieve/global.svbin successfully loaded Mar 22 14:50:23 lda(user@example.com): Debug: sieve: binary save: not saving binary /etc/dovecot/sieve/global.svbin, because it is already stored Mar 22 14:50:23 lda(user@example.com): Debug: sieve: executing script from /etc/dovecot/sieve/global.svbin Mar 22 14:50:23 lda(user@example.com): Debug: Namespace : Using permissions from /var/vmail/example.com/user/Maildir: mode=0700 gid=default Mar 22 14:50:23 lda(user@example.com): Info: sieve: msgid=cm.0045046409888.jyshukd.kidudykyhi.r@cmail19.com: stored mail into mailbox 'Courrier indésirable'
I would like to stop processing after Mar 22 14:50:23 lda(user@example.com): Debug: sieve: using the following location for user's Sieve script: /var/vmail/example.com/user/user.sieve;name=main script At the end, I do not want mail to be delivered into Junk, but into INBOX..
Is it possible ? Perhaps a sieve, sieve2 setting exists ? (like sieve_before, sieve_before2 ...)
Sieve processing continues into the next script in the sequence as long as an (implicit) keep is active. So, when you want to halt the sequence, but have the message filed into INBOX, you need to get the implicit keep canceled and end the script: e.g. do { fileinto "INBOX"; stop; }
Regards,
Stephan
Hi, ok, so I have to 'fileinto' AND stop processing.I thought that just 'stop' does the trick. I am trying that, thank you Nicolas.
Le jeudi 22 mars 2018 à 19:29:15 UTC+1, Stephan Bosch <stephan@rename-it.nl> a écrit :
Op 3/22/2018 om 3:30 PM schreef Mr Nicolas Belan:
Hello the list,
I am trying to achieve filter processing using sieve, but i am not sure I can do what I want.
I want to let the user decide to use my filtering script (sieve_after) or not. According to the documentation, i am trying to stop processing in user sieve script, but processing continue.
I am using dovecot 2.2 (CentOS).
My sieve configuration is: plugin { sieve = /var/vmail/%d/%n/%n.sieve sieve_before = /etc/dovecot/sieve/global-before sieve_after = /etc/dovecot/sieve/global [...] }
'sieve' is the filter script created by users. When trying to stop processing, it is generated by roundcube like: # rule:[deliver to mailbox] if anyof (true) { stop; }
'sieve_after' is the filter which handles the spam processing (fileinto Junk).
But the processing continue until all sieve filters are processed:
Mar 22 14:50:23 lda(user@example.com): Debug: none: root=, index=, indexpvt=, control=, inbox=, alt= Mar 22 14:50:23 lda(user@example.com): Debug: Destination address: user@example.com (source: -a parameter) Mar 22 14:50:23 lda(user@example.com): Debug: sieve: Pigeonhole version 0.4.2 initializing Mar 22 14:50:23 lda(user@example.com): Debug: sieve: include: sieve_global_dir is not set; it is currently not possible to include `:global' scripts. Mar 22 14:50:23 lda(user@example.com): Debug: sieve: executed before user's personal Sieve script(1): /etc/dovecot/sieve/global-before Mar 22 14:50:23 lda(user@example.com): Debug: sieve: using the following location for user's Sieve script: /var/vmail/example.com/user/user.sieve;name=main script Mar 22 14:50:23 lda(user@example.com): Debug: sieve: executed after user's Sieve script(3): /etc/dovecot/sieve/global Mar 22 14:50:23 lda(user@example.com): Debug: sieve: opening script 1 of 3 from /etc/dovecot/sieve/global-before Mar 22 14:50:23 lda(user@example.com): Debug: sieve: loading script /etc/dovecot/sieve/global-before Mar 22 14:50:23 lda(user@example.com): Debug: sieve: script binary /etc/dovecot/sieve/global-before.svbin successfully loaded Mar 22 14:50:23 lda(user@example.com): Debug: sieve: binary save: not saving binary /etc/dovecot/sieve/global-before.svbin, because it is already stored Mar 22 14:50:23 lda(user@example.com): Debug: sieve: executing script from /etc/dovecot/sieve/global-before.svbin Mar 22 14:50:23 lda(user@example.com): Debug: sieve: opening script 2 of 3 from /var/vmail/example.com/user/user.sieve;name=main script Mar 22 14:50:23 lda(user@example.com): Debug: sieve: loading script /var/vmail/example.com/user/user.sieve;name=main script Mar 22 14:50:23 lda(user@example.com): Debug: sieve: script binary /var/vmail/example.com/user/user.svbin successfully loaded Mar 22 14:50:23 lda(user@example.com): Debug: sieve: binary save: not saving binary /var/vmail/example.com/user/user.svbin, because it is already stored Mar 22 14:50:23 lda(user@example.com): Debug: sieve: executing script from /var/vmail/example.com/user/user.svbin Mar 22 14:50:23 lda(user@example.com): Debug: sieve: opening script 3 of 3 from /etc/dovecot/sieve/global Mar 22 14:50:23 lda(user@example.com): Debug: sieve: loading script /etc/dovecot/sieve/global Mar 22 14:50:23 lda(user@example.com): Debug: sieve: script binary /etc/dovecot/sieve/global.svbin successfully loaded Mar 22 14:50:23 lda(user@example.com): Debug: sieve: binary save: not saving binary /etc/dovecot/sieve/global.svbin, because it is already stored Mar 22 14:50:23 lda(user@example.com): Debug: sieve: executing script from /etc/dovecot/sieve/global.svbin Mar 22 14:50:23 lda(user@example.com): Debug: Namespace : Using permissions from /var/vmail/example.com/user/Maildir: mode=0700 gid=default Mar 22 14:50:23 lda(user@example.com): Info: sieve: msgid=cm.0045046409888.jyshukd.kidudykyhi.r@cmail19.com: stored mail into mailbox 'Courrier indésirable'
I would like to stop processing after Mar 22 14:50:23 lda(user@example.com): Debug: sieve: using the following location for user's Sieve script: /var/vmail/example.com/user/user.sieve;name=main script At the end, I do not want mail to be delivered into Junk, but into INBOX..
Is it possible ? Perhaps a sieve, sieve2 setting exists ? (like sieve_before, sieve_before2 ...)
Sieve processing continues into the next script in the sequence as long as an (implicit) keep is active. So, when you want to halt the sequence, but have the message filed into INBOX, you need to get the implicit keep canceled and end the script: e.g. do { fileinto "INBOX"; stop; }
Regards,
Stephan
Am 22.03.2018 um 15:30 schrieb Mr Nicolas Belan:
Hello the list,
I am trying to achieve filter processing using sieve, but i am not sure I can do what I want. I want to let the user decide to use my filtering script (sieve_after) or not.According to the documentation, i am trying to stop processing in user sieve script, but processing continue.
sieve_default might be the better approach to this. It uses your script until the user defines his own script.
-- Alex JOST
Hi, sieve_default shoud be good, but roundcube set an empty sieve script if a user removed its script.So, until the user creates its first script, it is working, but never called after. That's why I choose to use sieve_after. Regards,Nicolas
Le vendredi 23 mars 2018 à 09:03:16 UTC+1, Alex JOST <jost+lists@dimejo.at> a écrit :
Am 22.03.2018 um 15:30 schrieb Mr Nicolas Belan:
Hello the list,
I am trying to achieve filter processing using sieve, but i am not sure I can do what I want. I want to let the user decide to use my filtering script (sieve_after) or not.According to the documentation, i am trying to stop processing in user sieve script, but processing continue.
sieve_default might be the better approach to this. It uses your script until the user defines his own script.
-- Alex JOST
Op 23-3-2018 om 10:31 schreef Mr Nicolas Belan:
Hi,
sieve_default shoud be good, but roundcube set an empty sieve script if a user removed its script.
Uhmm.... why though?
Regards,
Stephan.
Regards, Nicolas
Le vendredi 23 mars 2018 à 09:03:16 UTC+1, Alex JOST jost+lists@dimejo.at a écrit :
Am 22.03.2018 um 15:30 schrieb Mr Nicolas Belan:
Hello the list,
I am trying to achieve filter processing using sieve, but i am not sure I can do what I want. I want to let the user decide to use my filtering script (sieve_after) or not.According to the documentation, i am trying to stop processing in user sieve script, but processing continue.
sieve_default might be the better approach to this. It uses your script until the user defines his own script.
-- Alex JOST
participants (3)
-
Alex JOST
-
Mr Nicolas Belan
-
Stephan Bosch