I have been evaluating Virtualmin GPL for the last week or so, and one of the things I've noticed in the webmail interface is the handling of when a user exceeds their quota. The web interface stops functioning correctly, and the user is quite powerless to fix it.
e.g. When the user has exceed their quota, the webmail interface reports:
Failed to open IMAP mailbox : Internal error occurred. Refer to server log for more information. [2010-02-04 02:13:26]
And 'Manage Folders' shows only the Inbox with a size of 0.
Also, the Size reported in Folder view, just prior to a user exceeding their quota, is different by 10's of MB to that of the actual size occupied under /home for that user. e.g for a 60MB quota, that is exceeded, the sum of folder sizes is around 40MB.
I understand what's happening behind the schenes - and why the web interace starts breaking (dovecot lock files cannot be created), but I think the situation could be handled better in the webinterface so that the user has a chance of fixing the problem themselves before it all breaks.
Perhaps a % buffer of quota space where mail begins to be rejected but small I/O like lock files continue to work, and appropriate reporting in the web interface?
This is just a minor nuisance in what I've found to be a fantastic management framework for virtual hosting - I just thought I'd log this feedback in the hope you can improve VirtualMin in this way. Thanks for the great product so far...
Comments
Submitted by JamieCameron on Wed, 02/03/2010 - 12:53 Comment #1
The issue here is that Dovecot cannot write its index files when the user is over quota, which causes the webmail interface to break as it by default entirely uses Dovecot to access email. Sadly, there isn't anything we can do about the underlying Dovecot issue..
However, there are 2 work-arounds :
Configure Dovecot to put index and control files on a different filesystem that the user doesn't have quotas on. If you have /var/lib/dovecot on a separate filesystem to /home , Virtualmin will do this by default already. Otherwise, you would need to create a new filesystem and mount it at /var/lib/dovecot.
Configure the Usermin webmail interface to access mailboxes directly instead of using IMAP. This can be done at Webmin -> Usermin Configuration -> Usermin Module Configuration -> Read Mail -> Mail storage format for Inbox .. set it to "Maildir"