We have a mail system configuration that involves multiple machines
(all running Exim); for example, we have an external MX machine and
then an internal central mail server. Mail is transfered between these
various internal machines using custom routing but normal SMTP delivery
(because that's by far the easiest way). These internal hops are not
supposed to ever fail and if they do, it's because we've had some
configuration problem or bad system failure.
I would like to configure our Exim instances such that if an internal
hop does fail (in a way that generates bounces) the affected messages
are instead either frozen or deferred (I don't care which, so long as
they don't bounce to the real sender). The goal is to make it so that if
we do someday have a misconfiguration or a problem, things don't explode
and no users notice; instead we get a chance to fix the problem and
deliver all of the messages[*].
I can't spot anything obvious to do this in the configuration of
routers or transports. The best I can come up with so far (inspired by
various exim-user messages) is the crude approach of generating bounce
messages that are immediately frozen or deferred; after the problem
is fixed, we would have to manually extract the original messages and
re-inject them. Even this has some problems I can see.
Is it possible to do better than this crude approach? If we'd have to
use the crude approach, what's the best way of making the expansion of
bounce_message_file (or the expansion of the template file itself) vary
depending on what router or transport is bouncing the message?
(I suppose we can probably make it dependent on the error delivery
address; for these special bounces we'd set errors_to on the router to a
specific magic address that would be configured to freeze things.)
Many thanks in advance (and my apologies if I've missed an answer to
this question in the mailing list archives).
- cks
[*: previous generations of our mail system have suffered inadvertent
internal failures and the resulting user-visible bounce explosions;
I would like us to do better in the future.]