Ted Cooper wrote: > 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. > > >
I do use recipient callout and that is my work around. However there are legitimate reasons not to always honor 5xy codes when you KNOW the reason it is being rejected is a mistake. I might want to redirect rejected messages to a file so I can look at it - or resend it later if the customer request it. Maybe an ignore_5xy_error command in a router so that instead of failing it can pass on to the next router. Also - is there any way to actually capture the 5xy string in a variable that can be tested? -- ## List details at http://lists.exim.org/mailman/listinfo/exim-users ## Exim details at http://www.exim.org/ ## Please use the Wiki with this list - http://wiki.exim.org/