Author: Marc Perkel Date: To: exim-users Subject: [exim] Feature I REALLY need - SMTP response strings
I have one feature I really need. When verifying, in this case recipient
verify, I need to be able to read the string I get back from the target
server.
I'm in the front end spam filtering business. Most of what I do is front
end filtering. The set their MX records to me, I fliter the spam, and
forward the good email to the original server. When people sign up I
read their current lowest MX and add it to a table that is used to
forward the mail to when I get done with it. Generally it works well.
When I get an incoming email I do a forward callout to the recipient
server to verify that the recipient is good. If the target server
rejects the recipient in the RCPT TO phase then I reject the incoming
email indicating that the user doesn't exist.
Here's the problem I'm trying to solve. The user changes their MX
records to my servers and at first everything works. Then 2 hours later
I get a call saying that email is being bounced. What happens is that in
some cases the original server thinks it is no longer the server for
that domain because it is no longer the lowest MX record so it replies
that my server is not authorized to relay through their server.
What I need to do is detect that this is happening and at least store
the incoming email and alert me that there's a problem. I have yet to
find a solution. But if I could do a callout and look at the response to
see if the word RELAY is in it then that would be a very good indication
that the target server is misconfigured.
Similarly, and this happens less often, that because all the email for
the domain is coming from a few IP addresses that I run into rate
limiting. Too many connections from one IP address. This results in
delayed email and I am usually not aware of the problem until the
customer complains.
I would also like to get the response from the target server on 550
errors so that I can put it in my log files so I can review why the
target server rejected email. Some times the target server is also still
running spam filtering and it rejects on a false positive on their end.
That would be something I'd like to be able to log so that I can find
the problem.