Re: Possible Sieve vacation bug (Was: [exim] Sieve vacation)

Top Page
Delete this message
Reply to this message
Author: Michael Haardt
Date:  
To: exim-users
Subject: Re: Possible Sieve vacation bug (Was: [exim] Sieve vacation)
On Thu, Feb 17, 2005 at 06:51:31AM +0100, Bob Johannessen wrote:
> >Sieve requires that keep is equivalent to filing the message to the
> >users inbox. Aliases have no inbox, so you can not run Sieve filters
> >on aliases if obeying the RFC strictly.
>
> I don't agree with that interpretation. Users have inboxes and users
> have aliases. So keep should file the message to the /users/ inbox,
> not the inbox of the alias.


We may have a different understanding of "alias". On my system, there
are mailboxes and aliases. Some aliases do not point to a local mailbox,
but to a mailbox on a foreign system. Replacing such an alias with a
Sieve script, what should keep do? A redirect? Nothing? None of both
sounds like "deliver to the default inbox" to me, as there is no storage
associated with the alias.

I have multiple aliases pointing to my own mailbox by subaddresses:

a@???: me+a@???
b@???: me+b@???

I do not run a filter on a@??? or b@???, but on
me@???, where the inbox is. The filter can look at the envelope
recipient to know who the mail was addressed to. If the subaddress
extension implementation was finished, it could use that instead for
slightly shorter tests.

> And even if I'm wrong we'll still have a potential problem when
> using :addresses (either for aliases of for forwarded messages). The
> current draft doesn't go into this in detail, but the way i read it
> the following script is REQUIRED to execute the second vacation
> statement even if the sender is in the once file for the first:
>
> vacation :addresses "bob@???" "I'll be back for newyears";
> vacation :addresses "alias@???" "I'll be back for newyears";


Vacation MUST be executed only once per script, so this fails right away,
but let's assume you put them in different branches of a test, as shown
in the draft.

I think (not sure here) the draft does not specify this, but has the
intention of using all parameters to vacation to compare different
statements in the sense of the draft. It fails to mention using ":mime",
too, but intends to use that. Your patch is wrong, no matter how the
draft is interpreted, but I may have to add the :addresses parameter to
build the database name and indeed two notices would result from that.
I will look at it.

>     days=VACATION_MIN_DAYS>7 ? VACATION_MIN_DAYS : 7;


> First line; shouldn't that be VACATION_MAX_DAYS in that calculation?


No. From section 3.1, too:

     If ":days" is omitted, the default value is either 7 or the minimum
     value (as defined above), whichever is greater.


And that's what the code does, setting the default days value.

It's this kind of critically looking at the code that lets open source
work best. Too bad it happens so rarely, so thank you twice for doing it!

Michael