On Wed, 2005-12-07 at 11:40 +0100, Felix Schwarz wrote:
> I'm using this transport filter in Exim:
>
> filter_transport:
> driver = pipe
> command = /usr/sbin/exim ...
> transport_filter = /some/command ...
> log_output = true
> temp_errors = *
> message_prefix = ""
> message_suffix = ""
> user = exim
> group = exim
> return_path_add = false
>
> Sometimes the filter will fail due to the called script exiting with a
> non zero exit code. In this case the message stays in the queue and exim
> will try to deliver it with the next queue run. But exim sends the mail
> nevertheless therefore the mail gets duplicated on every queue run.
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.
http://www.no.exim.org/exim-html-4.50/doc/html/spec_29.html#IX2166
> How can I stop exim sending the additional mail? I want that the mail
> will stay in the queue until it could pass the transport filter.
oh, now I get it, I think. but why are you using command
= /usr/sbin/exim? you can use transport_filter with the smtp driver,
too. at least it will be easier to debug it if you simplify it that
way.
--
Kjetil T.