[Tickets #1976] NEW: quota -- [ALERT] You exceeded your mail quota (again)

bugs@bugs.horde.org bugs at bugs.horde.org
Sun May 15 21:22:01 PDT 2005


DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.

Ticket URL: http://bugs.horde.org/ticket/?id=1976
-----------------------------------------------------------------------
 Ticket             | 1976
 Created By         | ismael at indatcom.net
 Summary            | quota -- [ALERT] You exceeded your mail quota (again)
 Queue              | IMP
 Version            | HEAD
 State              | New
 Priority           | 2. Medium
 Type               | Enhancement
 Owners             | 
-----------------------------------------------------------------------


ismael at indatcom.net (2005-05-15 21:22) wrote:

I know the subject has been talked about a lot, it's about trying to delete
a message that's bigger than
the quota the user has left on his/her account, and since imap doesn't
support "moving" messages (as far as
i can tell, RFC1730 doesn't mention it, and even if it was so probably
Maildir++ quotas don't either) the user
gets the dreaded "[ALERT] You exceeded your mail quota."

After spending a weekend trying to figure out a way around this, i think
there could be a couple of workarounds,
not sure if the Virtual Trash Folder (http://bugs.horde.org/ticket/?id=1082)
is intented to fix this issue, still
i would like to share my opionions about the matter.

Right now there are 2 ways for deleting messages:

1. Mark the deleted message (after that it's discounted from the user's
quota), and then purging the messages manually
to get rid of them forever. This option also opens up an abuse possibility,
a user can mark all his/her messages
as deleted, and never purge them, they will get discounted from the quota
and he will be able to recieve new mail, and
even read the "marked-deleted" messages without a problem. The only drawback
in this method is stetics on the inferface,
that you see a ton of marked messages, but having infinite quota beats that
;)

2. When you delete a message it gets "moved" to a trash folder of choice, it
actually copies the mail first and then it
gets expunged. The problem with this is obvious, when the user is almost at
full quota and the mail is bigger than the
quota he has left an error is given.

I personally like option number 2 for my users, but it doesn't work with
full quota.
A solution for that is as follows:

1. Mark the message deleted (effectively reducing the user's quota)
2. Copy the "already deleted" message to the trash folder of choice
3. Expunge the message from INBOX
It is actually the same procedure as number 2, just backwards, first delete,
and then "move".

For option number 1 i would also suggest an addition:
An option to delete-and-expunge on a single move, selectable on the options
area, so that the user "knowingly"
selects it for use. I would even go as far to say, be able to have 2 delete
links, the normal delete link and
another which appears right beside it labeled Delete and expunge or
something like that, this link could also be
an option for the user to choose.

Of course with my suggestion to option number 2 we also would open ourselves
to having a trash folder full of
deleted messages which don't count towards the user quota and just clobber
up space on the server, so for that
there could be a related option which forces purging of "mark-for-deletion"
messages in the trash folder
automatically after x days, week, month whatever the sysadmin deems
necessary, it could even be an administrator-only
option, just to keep users from filling up their filesystems with deleted
messages.

There's even another solution for Courier-IMAP users,
IMAP_MOVE_EXPUNGE_TO_TRASH=1
This conf option for C-IMAP daemon is useful in this situation, it
automatically makes use of the "send to trash"
option, this is what happens:

1. Mark a message for deletion
2. Expunge the message
3. Courier-IMAP automatically makes a copy of the message on the trash
folder
   that you configure on the imap conf-file, and it's copied without the
delete mark.
What this does is allows us to kinda "move" the message to the trash folder,
because the quota
doesn't get affected after the movement, the new message in the trash folder
is counting towards
the user's quota. The only problem is that right now the way IMP works for
this to happen can't use
the option "When deleting messages, move them.....", and when you go in the
trash folder you have to
delete the messages there and purge'em. So IMP would need a little bit of
tweaking to place a link
in this case to Delete all messages in this folder, or something like that.

Anyways, i hope someone could add any of this options to IMP.
Thanks again for this great open source software.

Cheers,
Ismael Sanchez A.




More information about the bugs mailing list