Timo Sirainen wrote:
In any case that requires calling the LDA immediately after the mail is received. I thought people didn't like to do that because if there are slow spam checks and such the incoming SMTP connection pool could quickly fill up and new SMTP connections would get rejected.
An LDA should only be called as a terminal case (i.e. all SMTP transactions have been closed and the message has been queued for local delivery). Any error at this point should either be temporary (over quota?) or permanent (something very wrong in the configuration, i.e. a message was accepted when it shouldn't have been). In the former case, the MTA should requeue the message for later delivery (no harm, no foul), and in the latter, the MTA should bounce the message back to the envelope sender.
IMNSHO, an MTA (e.g. postfix, qmail, etc) that wishes to refuse messages due to quota concerns should *not* rely on an external LDA to do that calculation. If you want to have that behavior, you need to use whatever built-in capabilities for that existing in the MTA. It is much more important for the local delivery to be decoupled from the SMTP transaction, precisely because of the possible need for timeconsuming message scanning. Of course, in practice, I always scan my messages for viruses during the SMTP transaction, since I refuse to generate bounce messages for those (which is the inevitable result of performing scans during local delivery).
John
-- John Peacock Director of Information Research and Technology Rowman & Littlefield Publishing Group 4720 Boston Way Lanham, MD 20706 301-459-3366 x.5010 fax 301-429-5747