Exim is a wonderful piece of software which may work for most… not me though.
I am known for doing some crazy things, and in this case its using the VRFY command from frontend servers to backend servers to easily, quickly and cost effectively check which backend is routing an email address.
1. This is what the VRFY command is specifically designed for, checking if an email address is valid or routable.
2. The purpose of the ACL list is to define access controls for commands. If I want to reject access to a command, should I not be able to do this?
This boils down to me not caring what Exim thinks. I don’t want to hear “252” (maybe its routable? maybe not? agg, maybe try later?). I know what is routable. I will tell you what is routable or not, and if I want to outright reject use of the command, you will do it.
But alas, Exim up to at least 4.86 returns a 2xx code, which is not configurable to 5xx or even 4xx. So no matter what we get a 2xx SUCCESSFUL status code.
ref: Exim bug 1769
PS: YES, I know why it returns 252 and I am not disputing that. The fact you cannot override this to 5xx is a deficiency.