On Tue, 9 Apr 2002, Alexander Sabourenkov wrote:
> > Don't do it that way. Do that with a router and a special transport.
> >
>
> Why not? Can you clarify?
(1) On general principles: that's not what the system filter is designed
to do. You *can* use it for routing, just like you can use rewriting for
routing, but that isn't the intention of its design.
(2) In practice, preserving the envelope is messy from a system filter,
and you can't use BSMTP, which is the "cleanest" way of preserving
envelopes.
(3) You have to remember to remove the X-Envelope-To: header that Exim
will add if it delivers direct from a system filter. Otherwise all the
envelope recipients are exposed to each other if you re-inject the
message.
> router + transport eat quite a lot more resources than system filter.
> What their advantages do you see?
Are you sure? The transport is going to run either way, so that doesn't
count. A router is written in C and should run quite fast. A filter is
written in an interpreted language which Exim has to analyse and then
interpret. I would be extremely surprised if it used less resources than
a router. (And if you set system_filter_user, Exim 4 runs it in a
separate process.)
I suppose, if the message has 1000 recipients you might notice, because
the router will run 1000 times and the filter only once. But then you
have 1000 addresses in your command line - which may give trouble.
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.