Re: [Exim] MTA-imposed quota exceeded

Top Page
Delete this message
Reply to this message
Author: Philip Hazel
Date:  
To: sys044
CC: exim-users
Subject: Re: [Exim] MTA-imposed quota exceeded
On Wed, 9 Aug 2000 sys044@??? wrote:

> The issue, as I see it, is whether EXIM quota is a filespace quota
> or a user mail INBOX quota. The first protects the system filespace
> whereas the latter protects the user INBOX and helps manage the system
> filespace.


The original implementation was done because some people don't have or
can't use system quotas, so it just mirrored them. You will see that
your suggestion is on the Wish List, but I wanted to find out how much
support (or not) there was, to help me judge whether and/or when to
implement anything. I will monitor what people say.

> This includes the classical problem of how
> do you inform a user who is over quota that an important large
> message is waiting.


How do you tell it's important? With 20,000 users we wouldn't want to be
trying to make such a value judgement.

> This scheme tells the user the information they need when they
> look at their mail and it is clear that NO message will be delivered
> to them regardless of size until they make some space.


Optionally changing the delivery test from "if current+this > quota" to
"if current > quota" is clearly extremely trivial and even if you are
the only one using it, doesn't impact much on anything else.

Implementing exceptions is less obvious. You would want to send a
message the first time a delivery failed, and only the first time.
(Otherwise you'd fill the disk with warnings to the guy who is on a
zillion busy mailing lists.) So you have to remember that you have sent
it - this means a whole new hints database. At the time of delivery, you
don't know if the message is going to be deferred or bounced (retry
handling happens later) so you can't tell the user what is going to
happen to the message. The hint also has to be cleared when the user
empties the mailbox and a delivery succeeds. So the hints database must
be read after each successful delivery. This can't be done in the
transport, because that is running as the user. Finally, if there are
two deliveries taking place at once, there is a chance that both will
send the warning message. It is all very messy.

Hmm. Maybe it could look *in* the mailbox and see if the last message in
it is the warning - no, that wouldn't work for mailboxes that use a
separate file for each message.

So: I can see a trivial way of implementing the behaviour; I can't see
an easy way of implementing the notification message.

And I'm still watching for comments on the list.


-- 
Philip Hazel            University of Cambridge Computing Service,
ph10@???      Cambridge, England. Phone: +44 1223 334714.