On 2015-02-12 01:01, Stephan Bosch wrote:
On 2/11/2015 10:37 PM, Portase Florin wrote: On 2/11/2015 8:41 PM, Stephan Bosch wrote: On 2/11/2015 7:34 PM, Florin Portase wrote: Hello guys,
I'm having troubles making "script_after" to exec sieve scripts::
Keep in mind that the sieve_after script is only executed when the "keep" action [1 [1]] is executed or when the implicit "keep" [2 [2]] is still active, meaning that the user didn't give the mail an explicit destination.
If the user does perform actions like fileinto or redirect without a `:copy' argument [3 [3]] and without performing an explicit "keep" [2 [2]] anywhere, the subsequent sieve_after scripts are not executed [4 [4]].
Therefore sieve_after is only useful to provide default behavior for when the user has no explicit rule for what should happen to the e-mail.
/home/vpopmail/domains/medianetork.ro/portase.florin/Maildir/sieve/dovecot1.sieve;name=lters' Feb 11 19:16:10 lda(portase.florin@medianetork.ro): Info: sieve: msgid=AAa=MneAO6+wwLh3M8nz1z6Mi2Ae2aDMdrSakJA_-PYCwCvbCA@mail.gmail.com>: stored mail into mailbox 'INBOX.Gmail' This was probably done using a
fileinto "INBOX.Gmail";' command. This cancels the implicit keep.To force executing sieve_after, the user needs to add a
:copy' argument to that fileinto command or a
keep;' action should be executed.Administrator policies that always need to be executed must be placed in a sieve_before script.
For more information:
[1]: https://tools.ietf.org/html/rfc5228#section-4.3 [1] [2]: https://tools.ietf.org/html/rfc5228#section-2.10.2 [2] [3]: https://tools.ietf.org/html/rfc3894 [3] [4]: http://tools.ietf.org/html/draft-degener-sieve-multiscript-00 [4]
Regards,
Stephan. Thanks Stephan,
However still have one small issue:
fileter.sieve
# rule:[amavis] if anyof (address :contains "From" "amavis", address :contains "Cc" "amavis-users@amavis.org", address :contains "To" "amavis-users@amavis.org") { fileinto "INBOX.lists.amavisd-new"; } # rule:[xxx_gmail] elsif anyof (header :contains "From" "xxx@gmail") { setflag "\\Flagged"; fileinto "INBOX.Gmail"; keep; }
In this case, both all 3 sieve are executed: global one + filters + vacation. But as side note: when mail come from gmail account,
- 1st message is sent to inbox.gmail
- 2nd vacation response is sent -3rd message is copied once more directly into INBOX
Now, if I modify: fileinto :copy INBOX.Gmail;
The message is sent to INBOX.Gmail and also copied to INBOX
How can I avoid such behavior ? Why do you have the vacation script in a sieve_after rule?
Regards,
Stephan.
Well,
I'm using roundcube with 2 plugins ( sieverules + vacation_sieve)
1st one used to create filters for incoming messages and 2nd one just "out of office" response.
Because of the limitation of sieverules plugin related to definition of "out of office" response I'm using 2nd one.
So, I will have 2 .sieve files ( filters.sieve + vacation.sieve)
Just to resume, when I'm activating vacation, the incoming message will be moved/copied to designated folder and vacation will be triggered after.
As you can see here :: dovecot1.sieve -> filters.sieve
vacation plugin has a build-in function to activate itself as a _default_ rule.
But as I mentioned before, incoming messaged will be filtered by filter.sieve and after ( if activated ) to trigger vacation response.
Hope, i wasn't to ambiguous :)
Links:
[1] https://tools.ietf.org/html/rfc5228#section-4.3 [2] https://tools.ietf.org/html/rfc5228#section-2.10.2 [3] https://tools.ietf.org/html/rfc3894 [4] http://tools.ietf.org/html/draft-degener-sieve-multiscript-00