Sieve forwarding loop destroys e-mail

Alain Spineux aspineux at
Mon Mar 31 08:04:29 EDT 2008

On Mon, Mar 31, 2008 at 5:12 AM, Gary Mills <mills at> wrote:
> 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.

sieve script is only a language.
The language nor its interpreter nor its compiler dont need to be smart, because
the script writer is supposed to be smart enough.

If the user in unable to write such script, it must use a "sieve
script manager", (application
written by a smarter developer) that will help him generating well
suited script.

"redirect" is a sieve command that forward an email to another address.
"redirect_and_keep" is not a valid sieve command, but you can write
such an extension.


>  > >  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
>  header.
>  --
> -Gary Mills-    -Unix Support-    -U of M Academic Computing and Networking-

Alain Spineux
aspineux gmail com
May the sources be with you

More information about the Info-cyrus mailing list