On Wed, 13 Aug 2003, Stephen Grier wrote: > We are running Cyrus-imapd-2.1.11 with sieve and duplicate delivery > suppression. One of our users complained that they had not been > receiving mail. It appears that this is because he has set up a sieve > script with a redirect rule which redirects all his mail to himself (his > own email address).
As you note, this is a problem with the sieve script and the user should expect to not see any mail. > As far as I can tell, his mail is initially delivered to his Inbox, at > which point lmtpd redirects the mail back via the MTA to his email > address. The redirected mail is delivered a second time, at which point > it appears that the mail is suppressed by Cyrus' duplicate delivery > suppression. As it should be. > I have seen a few references to this behaviour on the list from a while > back, but I'm not sure if this problem has been addressed in 2.1.11 or > later. When a redirect rule redirects mail to the same mailbox in this > way, will this always result in mail being silently discarded? It will always result in the mail being discarded. > Would this problem be solved by disabling duplicate delivery > suppression? I am slightly confused by the fact that lmtpd is not > actually logging that it has suppressed the message when this occurs. > Yet the messages never appear in the user's Inbox. Yeah, it should probably be logging this. > Obviously the user's sieve script is broken and I would expect it to > produce a mail loop, which our MTA should handle. But it is very likely > that other users will inadvertently redirect mail to themselves, and if > this is going to cause mail to be lost we may have to disable duplicate > delivery suppression. If it is likely that your users will redirect mail to themselves, they are going to lose mail no matter what they do. RFC 3028 states: Implementations SHOULD take measures to implement loop control, possibly including adding headers to the message or counting received headers. If an implementation detects a loop, it causes an error. Duplicate suppression handles this for Cyrus. Relying on the MTA to handle it is a sure way to get yourself into trouble. Any half-decent auto-responder should be performing its own loop detection/suppression. -Rob -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Rob Siemborski * Andrew Systems Group * Cyert Hall 207 * 412-268-7456 Research Systems Programmer * /usr/contributed Gatekeeper