On 10/20/2008 12:46 PM, Steffen Kaiser wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On Sun, 19 Oct 2008, Sotiris Tsimbonis wrote:
But how do we move the rejection at smtp level using sendmail+dovecot lda?
When a recipient is valid, the mail is queued locally, then the delivery attempt is made. That means that the SMTP dialogue has been closed already, before the MDA is invoked. sendmail has quite a strict separation between MTA and MDA, or to put it in other words it supports only the basic Unix-style /var/mail/system_user mboxes natively.
About "Switch to postfix":
How handles postfix the situation, when you mail to an alias with several recipients, one of them is overquota? Is the mail tempfailed for all of them?
==
Well, you could deploy a milter that verifies the recipients at RCPT TO stage. Depending on your config it may be difficult to map recipient addresses to the particular mail storage (esp. if probed on mail relays).
If you have a strict naming policy, you can put all users over quota into the access DB and update them regularily - thus avoding the milter.
I have made such a proof-of-concept milter before for mbox and static quota assignments, see http://stsimb.irc.gr/2008/02/10/milter-quota/ (excuse the Greek language :)).
It has a backend webservice (a cgi script) that calculates and reports "OVERQUOTA" using stat on the mbox, and a small milter on the frontend that queries this webservice for every recepient..
The problem is, that with Maildir it can be very costly to calculate the actual mail usage on every mail delivery attempt..
If I could somehow access dovecot's maildirsize, where the size is already calculated and updated on delivery and retrieval, things would be better..
Sot.