Marc Perkel wrote:
> Another feature - something I've asked for before - is the ability to
> treat a 5xx error as a 4xx error. I know people have complained it is
> dangerous but you can put all kinds of warnings in the docs about it.
> Here's why.
I can remember :P
> I'm doing front end spam filtering. People point their MX to me and I
> clean it and forward the good email on to them. Normally this is simple.
> But sometimes what happens is that when the recipient's server is no
> longer the lowest MX it forgets it is hosting the domain and starts
> rejecting 550 all the email I'm forwarding with a "relay denied" message
> and it creates a bounce. I need to intercept that so that I can do
> something else on 550 errors other than bouncing.
Adding to code to break the fundamentals email, no matter how innocent
the reason, isn't going to make it into the main source code. There's
nothing stopping you from horribly breaking your servers although there
are probably much better solutions.
To cope with destination servers having a cow and rejecting emails for
no good reason, and prevent end users from having servers that bounce
anything at all, I change the envelope sender either with "errors_to" in
a router or use SRS. As soon as an email is bounced, all email destined
for that server gets tagged with "control = freeze" and they get an SMS
to their contact number telling them their setup is broken. Generally,
only 1-2 emails end up in the bounced mailbox which I can then send back
to them when they fix their server.
That was the most elegant way I could think to do it and it doesn't
break email, and it also means that when some twat installs an anti-spam
system on their m$ exchange box that goes insane from never seeing spam
and starts bouncing random messages, I don't get the blame.
As another alternative, you could probably use a recipient callout every
once in a while to check it too.
--
The Exim Manual
http://www.exim.org/docs.html
http://docs.exim.org/current/