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

Reply via email to