dovecot 2.2.15 script_after not executed
Florin Portase
portase.florin at medianetork.ro
Mon Feb 16 10:44:01 UTC 2015
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 02/16/2015 12:01 AM, Stephan Bosch wrote:
> On 2/12/2015 2:12 AM, Florin Portase wrote:
>>
>> 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
>>>>> <https://tools.ietf.org/html/rfc5228#section-4.3>] is
>>>>> executed or when the implicit "keep" [2
>>>>> <https://tools.ietf.org/html/rfc5228#section-2.10.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
>>>>> <https://tools.ietf.org/html/rfc3894>] and without
>>>>> performing an explicit "keep" [2
>>>>> <https://tools.ietf.org/html/rfc5228#section-2.10.2>]
>>>>> anywhere, the subsequent sieve_after scripts are not
>>>>> executed [4
>>>>> <http://tools.ietf.org/html/draft-degener-sieve-multiscript-00>].
>>>>>
>>>>>
>>>>>
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 at medianetork.ro
>>>>>> <mailto:portase.florin at medianetork.ro>): Info: sieve:
>>>>>> msgid=AAa=MneAO6+wwLh3M8nz1z6Mi2Ae2aDMdrSakJA_-PYCwCvbCA at mail.gmail.com
>>>>>>
>>>>>>
<mailto:msgid=AAa=MneAO6+wwLh3M8nz1z6Mi2Ae2aDMdrSakJA_-PYCwCvbCA at 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 [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
>>>>>
>>>>>
>>>>>
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 at amavis.org
>>>> <mailto:amavis-users at amavis.org>", address :contains "To"
>>>> "amavis-users at amavis.org <mailto:amavis-users at amavis.org>")
>>>> { fileinto "INBOX.lists.amavisd-new"; } # rule:[xxx_gmail]
>>>> elsif anyof (header :contains "From" "xxx at gmail
>>>> <mailto:xxx at 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 ?
>>>
>
> With your configuration, the vacation script is responsible for
> the final delivery decision. If that script only executes the
> vacation command, the message is stored into INBOX by default
> (implicit keep).
>
>>> Why do you have the vacation script in a sieve_after rule?
>>>
>>
>> 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 :)
>>
>
> If you want to force execution of the vacation rule, it should be
> in sieve_before (or in you case that would be sieve_before2).
>
> As a bonus, the user's main active script (filters.sieve) will
> have responsibility for the final delivery. So if there's no
> (implicit) keep, there will be no message in INBOX.
>
> Regards,
>
> Stephan.
>
>
>
Thanks Stephan,
yes, everything is working well :)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQEcBAEBAgAGBQJU4cnxAAoJECEzxtLP+2049uIH/3llT4xv+YbzG+F8WKejNC4D
sgjTFgroLywXNR147CHgAuDgkdCT3HqKxcgp/U4VpupWd0cXVasEIgArKVGlL6Zh
fJxmAeJZaPxa4AxL9VAT4gEvwDO4LReoneTrKMQ0I3Y80FgA0tOQ8Q6ZaTllUi6n
R61mabZJ6x7RDEAdYr/lm2r5c1X5QLJoC4Q8McXfeB6jrVfyVoR23s3dWgG0rer4
I+cEsBh7wzpNYxs3JYNYLf0H9EpTggsLGUfqs2RwApi8p7fjWrohF60zbNammiFS
HQQqlR4JKqx+Bv8z/oPqQe+DpYRdqVNMxbJDb/bJbpbTLKtSaqRyr9DsNlGlxPk=
=F4Bk
-----END PGP SIGNATURE-----
More information about the dovecot
mailing list