Squirrelmail: full mailbox prevents message deletion

Squirrelmail is a popular open source webmail application that is bundled with Mac OS X Server. Written in PHP and running on top of Apache webserver it normally uses the bundled Postfix mail server for SMTP (sending mail) and Cyrus IMAP server (accessing mail). It can of course be configured to take advantage of other SMTP/IMAP combos including EIMS.

When a size limit is placed on a user’s mailbox, invariably that user’s mailbox will fill up to the point where Postfix (or EIMS) will no longer accept mail for that user. If this occurs, people trying to send mail to that user will receive a bounce notification message that looks something like the following.

full mailbox bounce message

At this point the user needs to delete some mail from their account before the server will accept any more mail for them, and hopefully they’ve been made aware of the problem via some other communications channel. They’d do this by selecting a message, and hitting delete like so:

full mailbox bounce message

However, now they can often find themselves in a situation where they see an error like the following:

full mailbox bounce message

Which effectively prevents the user from fixing the problem. The reason this is happening, is by default, Squirrelmail doesn’t permanently erase mail when you press the delete button. Instead, Squirrelmail tries to move the selected mail into a Trash folder providing a fail safe should the user change their mind, or mistakenly delete the wrong email. Unfortunately due to the mailbox limit being reached, there’s no longer any room to make the move.

In the event that there is already some mail in the Trash folder a small purgepurge link will appear to the right of the Trash mailbox. Clicking this may well alleviate the problem and allow the user to move more mail from their inbox to the trash for further purging, freeing up some more space. However, more often then not, this is not the case as there is nothing in the Trash mailbox, or the size of its contents are not enough to make an impact and resolve the problem.

What normally happens at this point, is that the user tries to get the postmaster to increase the size of their quota which is undesirable as it may take time to get this to happen, and it is not really necessary as the user can actually resolve the problem by themselves by modifying the default behaviour of Squirrelmail so that the delete button permanently erases selected mail.

To do this:

  • select Options from the menu towards the top of the page by clicking it once
    squirrelmail menu
  • select Folder Preferences from the middle, right
    folder preferences
  • and change the setting for the Trash folder from:
    trash folder
    no trash folder
  • remember to click Submitsubmit(down the bottom right of the page) to save the changes

It will now be possible to go back to the inbox and to delete mail again. Select the messages you want to delete and then hit the delete button. Now, press Expunge to permanently delete the message and free up space.

WARNING: of course now that the user has removed the fail safe mechanism from Squirrelmail, any mail that that is deleted is permanently erased and can not be recovered in the event of a mistake. For this reason, I would advise that once enough mail has been cleared to restore mail delivery services, these steps are reverse to put the fail safe back in place.