Maybe a bit offtopic, Sieve beaviour

Sean Kamath kamath at moltingpenguin.com
Wed Aug 24 19:04:29 UTC 2022


I recommend reading the RFC: 2.10.2 <https://www.rfc-editor.org/rfc/rfc5228#section-2.10.2> is where the Implicit Keep is described.

Basically, if you don’t take action on a message, there is an “implicit keep” that will save the mail in the default location.  If an action *is* taken on a message (that results in it being saved somewhere; i.e., ‘fileinto’), then the implicit keep is removed (since you have explicitly said where to put it).

So there’s the “keep” keyword (see 4.3 <https://www.rfc-editor.org/rfc/rfc5228#section-4.3>), to “do what you would do in the implicit keep” (more or less).

So:

fileinto :create “ac” -> puts the message into “ac” and removes “implicit keep”
keep -> puts implicit keep back (more or less)

fileinto :copy :create “ac” -> puts a *COPY* of the message into “ac”, and the original retains “implicit keep”.

They do the same thing, though I try and avoid unnecessary extensions when I can.

Sean

> On Aug 24, 2022, at 07:29, João Silva <joaopfmlist at lipc.fis.uc.pt> wrote:
> 
> 
> On 23/08/2022 13:03, Rob Sterenborg (Lists) wrote:
>> 
>> On 23-08-2022 11:44, João Silva wrote:
>>> Hi
>>> 
>>> If a sieve filter contains a rule
>>> 
>>> if header :regex ["From"] ["@xxx.com","@yyy.pt"] {
>>>          fileinto :create "ac";
>>> }
>>> 
>>> The mail should be copied to the folder ac and then proceed to other rules that a user might have or I understood the
>>> 
>>> fileinto
>>> 
>>> wrong?
>>> 
>>> Using dovecot-pigeonhole-2.2.36-8.el7.x86_64
>>> 
>> 
>> I use it like this, and it works for me:
>> 
>> if address :is "From" "sender at domain" {
>>   fileinto :create "some_mail_folder";
>>   stop;
>> }
>> 
>> Almost 20 years ago, I figured out that I *need* the "stop;" line, but I don't remember why.
> 
> The stop; is needed to prevent further script actions on the email and that is a very curious thing that I dont know if falls in the "bug or feature" field.
> 
> if I use
> 
> if header :regex ["From"] ["@xxx.com","@yyy.pt"] {
>          fileinto :create "ac";
> 
>         keep;
> 
> }
> 
> It delivers the mail in my Inbox which was my intention in the first place.
> 
> When I used the filter without the keep; and since I didn't had the stop; I was expecting further actions on that email that will lead to the email end up in the Inbox and that didn't happened.
> 
> So it apears that the fileinto rule have a stop; into it without the stop being declared.
> 
> In a complex mail management scenario that can cause problems. So my question is, "bug or feature"?
> 
> 
> 
>> 
>> 
>> -- 
>> Rob

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://dovecot.org/pipermail/dovecot/attachments/20220824/410ba4f9/attachment.htm>


More information about the dovecot mailing list