This could be as simple as:
*** 1. Make dovecot aware of and use a special 'Quota Status' message
that it uses to inform a user that they are over quota. This message
should be able to be customized, with variables (like, for example, it
should list the messages that are bounced - including, optionally, the
Subject, the sender, date/time, etc - as well as provide general quota
information (ie, how close to or over quota they are, and how much
they'd need to delete or move to Local Folders to get back below a
certain level (again, configurable)), and lastly, any custom
information the System Admin wanted to provide - like, maybe, specific
instructions for how to move messages to Local Folders, how to request
additional storage allowance, etc.
*** 2. When user goes over quota, update the Quota Status message and
move it to the Inbox.
Or how about using a virtual folder instead (assuming they will be
supported in Dovecot in the near future). It would work like this:
1) A read-only global folder called overquota (normally not accessible)
contains one generic message saying that you are over quota and will not
receive any new messages (with instructions on how to delete email to go
under quota).
2) Using virtual folders, when a user goes over quota, the user's inbox
is shown together (merged) with the read-only overquota folder.
3) When a user is back under quota, the inbox will go back to normal.
Using this method, no additional disk space is required for writing over
quota messages, so it would work with a hard quota or filesystem quota.
On the filesystem is only one message (owned by an admin) that would be
shown to everyone over quota - no need to have multiple copies of this
message.
Additionally, this method could be further developed and configured with
a setting to warn users that they are almost at their limit (using a
different virtual folder containing a "you're at 95% or 99% of your
quota" message). Having a constant, new, important (flagged),
un-deletable message in ones inbox would be a constant reminder that
action needs to be taken.
Scott Alter