On Mon, 2007-12-10 at 09:56 -0800, Tom Collins wrote:
> On Dec 9, 2007, at 6:03 AM, [EMAIL PROTECTED] wrote:
> > I'm using John Simpsons last combined patch... I'm trying to know if I
> > could any way... cause qmail to reject messages at smtp dialogue if  
> > users
> > we're trying to deliver is overquota instead of bouncing it...  
> > black lists
> > are nowadays becoming quite crazy IMHO but they're know  
> > blacklisting this
> > servers who bounce overquota... well infact now all servers that  
> > bounce
> > directly... it would be a nice idea to reject messages for overquoted
> > mailboxes...
> I've proposed the following solution, a few times over the years, and  
> I still think it's a good one.  It would fit your needs (and most  
> people's needs) well.
> Someone needs to make a qmail-smtpd patch that calls an external  
> program to verify an account.  That way, there's a single qmail-smtpd  
> patch and you can come up with whatever program (chkuser,  
> validrcptto, etc.) you want to verify an account.
> You'd pass in the sender's address and the attempted recipient  
> address.  The program can have different exit codes for different  
> conditions, and can even output a custom reject message.  This would  
> allow for handling lots of conditions:
> * Temporary failure, user is over quota
> * Permanent failure, user is over quote
> * Permanent failure, account does not exist
> * Permanent failure, "account closed, please use [EMAIL PROTECTED]  
> instead"
> * Accepted
> * Accepted (by catchall)
> * Rejected, "this account does not accept mail from [EMAIL PROTECTED]"
> Hopefully someone with some time on their hands will take this on.

I went looking into this thinking chkuser would be a perfect place for the 
basic quota check.

Of course that would be sort of vpopmail specific, but lo and behold, it's 
already in there.
'chkuser.c' v.2.0.8
if (vmaildir_readquota(tmp_path.s,format_maildirquota \
        (user_passwd->pw_shell)) \
        >= maxmbxquota_limit) {
                                                retstat = CHKUSER_ERR_MBXFULL;

It's not as encompassing as Tom was envisioning, but it does do what the parent 
is looking for..


> --
> Tom Collins  -  [EMAIL PROTECTED]
> Vpopmail - virtual domains for qmail: http://vpopmail.sf.net/
> QmailAdmin - web interface for Vpopmail: http://qmailadmin.sf.net/


Reply via email to