Autor: Kjetil Torgrim Homme Data: A: Felix Schwarz CC: exim-users Assumpte: Re: [exim] Re: Errors in transport filters
On Thu, 2005-12-08 at 09:50 +0100, Felix Schwarz wrote: > Kjetil Torgrim Homme wrote:
> > well, that's what your configuration asks for, isn't it? any non-zero
> > exit code is a temporary error which means Exim will retry delivery
> > later. if your script sends the e-mail even it returns a non-zero code,
> > you'll need to change temp_errors to be more specific, or just remove
> > the line.
>
> My script does not send any mails. It is just a filter that changes a
> mail in certain way. After that the output (RFC 822 email) should be
> handed over to Exim again. Exim will handle the actual delivery.
why are you using a pipe delivery?
> What Exim does is: It takes the mail, calls the transport filter script.
> This script will return a non-zero exit code
"A non-zero code is taken to mean that the transport filter failed in
some way. Delivery of the message is deferred."
however, since you are invoking exim as a pipe delivery, that child exim
will run to completion with whatever input it receives. (my
understanding, not verified.)
Philip, I think perhaps the documentation for transport_filter should be
clearer about whether transport_filter and pipe_command are run in
parallel or sequentially.
> and (as a savety measure)
> will return the original email without any changes. Exim will take that
> mail and deliver it. *Additionally* the original mail will stay in the
> queue and the queue runner will try to deliver it on the next run.
when will the message ever leave the queue?
> Mostly the transport filter will fail again because a database is down
> and manual intervention by a human operator is needed (our transport
> filter script will notify an administrator). The problem is that Exim
> duplicates the mail on every queue run that means within one hour there
> are 12 duplicate mails!