Using a Homespool

In a standard mailbox configuration, every user has their own inbox file which is stored in a central mail "spool" directory (traditionally /var/spool/mail or /var/mail). In a large cluster of machines, this complicates administration, because disk space, NFS servers, and quota management all have to be done twice: once for the home directories and again for the mail spool.

As a result, many large installations use a "homespool" setup instead. This means that each user's inbox is stored in a file in their home directory instead of in a seperate spool area. Different sites use different names for this file; I usually call it .INBOX.

Since sendmail doesn't access the user's inbox itself, no modifications to it are necessary to move to a homespool scheme. What you do need to change are your local MDA and all of your MUAs. They all access the inbox directly, and therefore need to be modified to know where it lives.

I have supplied some patches and information on how to do this to some common programs. Please be aware, however, that these patches are not all tested. Use them at your own risk.

Here's how to modify the common local MDAs to use a homespool:
MDA Modification/Patch
procmail procmail-homespool-patch
mail.local mail.local-homespool-patch

Here's how to modify some common MUAs to use a homespool:
MUA Modification/Patch
mutt Pass the option --with-homespool=.INBOX to configure.
elm elm.homedir.patch
pine Make sure to set $MAIL (see below) and put this line in the global pine.conf file:
inbox-path=$MAIL

It is highly recommended that you set the $MAIL environment variable to point to ${HOME}/.INBOX when each user logs in, so that unmodified programs which are smart enough to check $MAIL will do the right thing.


Mark D. Roth <roth@feep.net>