I have been working on a way for specific remote MX boxes to validate
all e-mail addresses with the vpopmail database on the central server.
Initially, I attempted to do this via a replacement VRFY command, and
then I realized I don't need to do anything that complicated, so I wrote
my own finger (vpopfinger) which queries the vpopmail database and
either returns something which looks a lot like a finger response or
nothing at all if the user doesn't exist. It works great, and I am sure
it is much lighterweight than having to start up a new qpsmtpd session
just to use VRFY.
Unfortunately, it caused problems with the flow because check_relay does
two conflicting functions:
1) sees if the IP address can relay
2) sees if the domain is acceptable
I really want to replace #2 with my own code to validate both domain and
user. So what I did was to split check_relay into two pieces:
1) check_relay now only sees if the IP address can relay
2) rcpt_ok now runs last and can accept mail if it is in rcpthosts
If this is an acceptable change, I'll commit it to the repository (with
appropriate warnings to change config/plugins)...
John