Gary Mills wrote:
> 
> On Thu, Dec 13, 2001 at 11:21:14AM -0500, Ken Murchison wrote:
> >
> > [EMAIL PROTECTED] wrote:
> > >
> > > We are running Cyrus IMAP4 v2.1.0pre, from a CVS of a month or so ago.
> > > Some users have sieve scripts that have two `redirect' commands,
> > > one specifying another e-mail address, and one specifying their own
> > > e-mail address.  Their intention is to forward a copy of the mail
> > > and also deliver a copy to their INBOX.  However, the second copy
> > > disappears.
> > >
> > > Apparently, Cyrus sieve re-mails both copies, but when the copy
> > > addressed to the original address is re-delivered, the duplicate
> > > supression mechanism discards it.
> >
> > How would we determine that they are redirecting to themselves?  You'd
> > end up getting into the 'vacation' problem of knowing all of the user's
> > addresses and aliases.
> 
> Well, if the redirect address is the same as the envelope recipient,
> sieve could take a shortcut and just perform a `keep' operation.
> I realize that this would not prevent all mail loops, but it covers
> the most common case.  Sendmail with .forward files handles this
> case correctly.

Hmm...  Well, this won't as-is for the same reason that people need to
specify :addresses for vacation.  The envelope recipient when retrieved
by sieve is unqualified (ie, no domain) and the redirect address is (as
is required by the Sieve parser).

The vacation draft says that implementations SHOULD know what a users
actual email address is, but cmu-sieve doesn't have any way of
determining this.  Perhaps we should provide a hook for external address
lookups based on the envelope recipient.  The default behavior could be
to simply append the domain.

> > I think the users should be educated as to what is happening and on how
> > to use Sieve correctly.  Isn't this kind of like walking to the post
> > office to send a letter to yourself, instead of just dropping it on your
> > desk in the first place :^)
> 
> According to the sieve documentation, sieve takes great pains not to
> lose mail, for example, with the implicit keep.  Redirecting mail to
> your own address is a trap for the user, and it may be some time before
> she even realizes that mail is being lost.  Sieve should not be allowing
> this to happen.

Hmm.  Sieve provides the implicit keep so that if a user forgets to
implement a rule for a particular case (ie, a message passes through the
entire ruleset without any disposition) that it will be kept.  In the
case that you mentioned, ANY redirect action that is successfully sent
to the MTA cancels the implicit keep.

I agree that it should not be so easy for a user to lose mail, but I'm
not sure what the best way to avoid this is.  Obviously, redirecting a
message to oneself is silly when it can just be kept.  Also there is
only so much we can to do to protect users from themselves .

Ken
-- 
Kenneth Murchison     Oceana Matrix Ltd.
Software Engineer     21 Princeton Place
716-662-8973 x26      Orchard Park, NY 14127
--PGP Public Key--    http://www.oceana.com/~ken/ksm.pgp

Reply via email to