Sieve forwarding loop destroys e-mail

Ken Murchison murch at
Mon Mar 31 11:52:10 EDT 2008

Gary Mills 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.
> Shouldn't we have a better solution to this problem?  Some people
> expect that forwarding e-mail to yourself should work; nobody expects
> the messages to vanish without a trace.

I'm all for trying fix this if someone can come up with some logic to do 
so.  IMO, the code is correctly processing the script as written.  Here 
is the current code logic:

- original message is sent to lmtpd
- message is forwarded and a record is put in deliver.db stating as much
- forwarded message comes back to lmtpd
- lmtpd executes the script which tells it to forward to another address
- lmtpd sees that it has already forwarded the message, so doesn't 
forward it again

At what point should we decide to deliver the message?  The user hasn't 
asked us to do that, even though they think that they have.  How can 
lmtpd be intelligent enough to know that the forwarded address will 
cause the message to come back?

Kenneth Murchison
Systems Programmer
Project Cyrus Developer/Maintainer
Carnegie Mellon University

More information about the Info-cyrus mailing list