Re: [Exim] Exim should answer 5xx on mailbox quota (variant)

Top Page
Delete this message
Reply to this message
Author: Roman Minakov
Date:  
To: exim-users
Old-Topics: Re: [Exim] Exim should answer 5xx on mailbox quota
Subject: Re: [Exim] Exim should answer 5xx on mailbox quota (variant)
hello!

Let's see the case if EXIM quota is set (does anyone use the system quota for
mailbox limiting at all?):

Can we make "fiction delivery" or "test of delivery"?
For example:
------------
in ACL check_smtp_rcpt:

deny = !check_quota
message = mailbox is full

------------
check_quota (make test of delivery, not real delivery):

  if (delivery_to_the_file) {
     if (mailbox_size < [per-user]_quota) {
        return OK
     } else {
        return FAIL
     }
  } else {
     return OK
  }



delivery_to_the_file - set by any of transport, which decide write message to
the disk to the known filename (not to the pipe or smth like that).

And it should be _PERMANENT_ error - NOT ":defer:". 5xx error should be
generated in overquota case.

per_user_quota file may content:
user1@???: 100M
user2@???: 20M
*@domain.com:     5M
*@foo.com:        10M
*:                5M


PS Quota in this case should be "soft" - last message before overquota
received in any case (even if message size more than space left in the
mailbox), but after that - mailbox is full.


> The following item is already on the Exim 4 wish list:
>
> ---------------------------------------------------------------------------
> (3) 01-Jan-02 U Test for over-quota at SMTP time
>
> This is a hard one, because the only way to test for over quota is to try
> to deliver a message, certainly if system quotas are being used. And also,
> the only available size at RCPT time is the SIZE option, though of course
> the test could be run at DATA time. I think maybe we leave this one to an
> external program, and require people to use ${run} to access the data. Let
> someone else figure out how to extract the current mailbox size!
> ---------------------------------------------------------------------------


--
_____________
Roman Minakov