Sieve forwarding loop destroys e-mail

Gary Mills mills at
Sun Mar 30 23:12:33 EDT 2008

On Sun, Mar 30, 2008 at 02:27:29PM +0100, Alain Spineux wrote:
> On Mon, Mar 17, 2008 at 5:39 PM, Gary Mills <mills at> wrote:
> > Once again, we had somebody use the sieve facility to redirect e-mail
> >  back to the same mailbox and then go on vacation.  This sets up a
> >  forwarding loop which cyrus breaks by discarding the e-mail.  During
> >  this vacation, all of the person's e-mail disappeared.
> If you force a "keep" in your sieve script, the mail will be delivered
> at least once in
> the mailbox

It's perfectly valid to have nothing but a `forward' in a sieve
script.  People do this all the time when they don't want to keep
a copy for themselves.  Unfortunately, some also forward e-mail to
themselves, expecting that to work.

> >  Once the message has been `seen' and is about to be forwarded again,
> >  it would be better to deliver the message into the mailbox, rather
> >  than deleting it.  Is this possible with the current design of the
> >  duplicate delivery database?
> How can a message be 'seen' if it is not in the mailbox, and how can
> the mailbox owner read this message if he is in vacation ?
> Or you mean 'seen', already in the delivered db ? But then this
> is the job of the delivered db to drop the email to avoid loop.

I suppose I mean `delivered'.  Yes, it will be discarded the next time
it's delivered.  That's the problem.  There needs to be some
connection between delivery and the forwarding process.  Of course,
it's impossible to distinguish between a forwarding loop and a real
duplicate unless another `Received' header is added to the message

-Gary Mills-    -Unix Support-    -U of M Academic Computing and Networking-

More information about the Info-cyrus mailing list