Notes to the hashing code, - For E-mail delivery, it is assumed that the maildirs_basedir defined in hash_core.h exists, and that all first-level hashes exist. If [the hashing version of] qmail-local can't find these, mail delivery will fail with a *temporary* error, meaning that the message will be re-queued and tried again later. This is based on the fact that this hashed system is designed to be used with multiple front-ends backing onto shared storage, and the assumption that there are enough users on the system that all first-level hashes will exist (or you've created them as outlined in USAGE.ADMIN). If any further hashed directory can't be reached, this is treated as a non-existent user, in which case a catch-all mailbox ("@domain") will be checked before returning a permanent error (causing a bounce). - For want of a better place to put this: If you have shared storage, your first level hashes should be defined there, *not* on the front-ends that mount it (which should just have /maildirs as a mount-point). This way, if your shared storage becomes unmounted, the above behaviour (temporary error) will occur. If you were to also have first level hashes on these front-ends when the shared storage was not mounted, all E-mails would bounce, since the first level hashes would be found but not the mailboxes. - However... if you have shared storage across multiple devices, you may wish to organise this by having the 1st level hashes as mount points. In this case, you'll need to adjust the code to treat non-existent *2nd* level hashes as indicating non-existent users.