Cyrus IMAP Server  by the Carnegie Mellon University is my favourite IMAP server.
It operates independenent of other system parts and supports server-stored SIEVE scripts for incoming mail processing.
The Autocreate INBOX and autosievefolder patches  by University of Athens are very useful patches for LDAP-based installations of Cyrus IMAP.
Autocreate INBOX solves the problem of automatic mailbox creation in the following situations (from the UoA Cyrus autocreate patch website ):
- When a user logs in the system (through the IMAP or POP3 protocol) and there is no INBOX.
In this case, the user gets authenticated by Cyrus against a user database (sasldb, shadow, ldap, mysql etc.) After the authentication Cyrus checks if the user INBOX exists and creates it if needed.
- When an incoming message arrives (through the LMTP protocol) for a mailbox that does not exist.
In this case, it is the responsibility of the MTA to check against the user database if the recipient exists. On existence of the recipient, the MTA passes the message to the LMTPd. LMTPd tries to deliver the message to the recipient’s mailbox. If the mailbox does not exist, lmtpd creates it.
The Autosievefolder patch helps creating subfolders for the “fileinto” action of sieve scripts.
On the Author’s website  patches are available only for Cyrus IMAP server versions up to 2.3.16.
I have updated these patches to support Cyrus IMAPD 2.4.12.
Updated patches are available for download at this location.