Dovecot, written by Timo Sirainen, is an open source IMAP and POP3 server for Linux/UNIX-like systems, written with security primarily in mind. Although it's written in C, it uses several coding techniques to avoid most of the common pitfalls.
Dovecot is fast, secure, flexible, and has a rich feature set that makes it compatible with most existing IMAP systems. It has a rich set of easy to read and understand configuration options with fairly good documentation within the configuration file. This allows for easy migration path from UW-IMAP and Courier. Dovecot supports both MBOX and MAILDIR formats allowing you compatibility with your existing system while giving you the option to switch it something else.
Dovecot supports a wide variety of Virtual User Configurations so you can support multiple domains using a variety of methods. Dovecot is compatible with Exim, Sendmail, Postfix, QMail, and other mail transfer agents. It also works with webmail interfaces like Squirrelmail.
Dovecot takes very little memory. Most of it goes to mmap()ed index and mailbox files, meaning that if operating system is low on memory, it can simply drop those memory pages without having to store them in swap. Connections are handled in separate processes, each one currently using around 100kB of swappable memory. Some extensions like SORT and THREAD will require more memory to work though.
Dovecot is fail safe. Dovecot does sanity checks to all data before using it to avoid crashes and other problems. Any kind of crash is considered as a bug and will be fixed - even if it happens only by deliberately poking the index files. Dovecot is a program that "just works".
Dovecot supports multiple authentication databases at the same time as well as multiple name spaces. Multiple authentication means that you can support the old Unix style mailboxes at the same time as a modern virtual email system.
Documentation and Support
What's the point of having great software if no one knows how to use it? Dovecot has a strong support community. As compared to many open source software packages Dovecot is well documented here in this wiki by the author and many users who aren't programmers who contribute to making this program successful. Dovecot has a support mailing list that can be accessed through firstname.lastname@example.org . Anyone can subscribe.
Dovecot is in active development and is progressing at a rapid pace. Read testimonials from happy users.
Dovecot runs on these operating systems:
- Linux (with kernel 2.2 and later)
- Solaris 8 and newer
FreeBSD 4.10 and newer
OpenBSD 3.2 and newer
NetBSD 1.5 and newer
- BSD/OS 4.2
- Mac OS X 10.2, Mac OS X 10.4
- AIX 4.3
- HP-UX 11.11
- IRIX 6.5 compiles, but SCM_RIGHTS seems to be broken.
- Cygwin works after a few code changes, but doesn't support SCM_RIGHTS.
- IMAP (including TLS/STARTTLS)
- IMAP+SSL ("imaps")
- POP3 (including TLS/STLS)
- POP3+SSL ("pops")
Dovecot authentication mechanisms include:
- apop (only for POP3)
Dovecot supports many ways to store user and password information including:
- passwd and shadow files
- Password Executable
- MySQL, supports multiple database hosts
Dovecot lets you put the data where you want it with a rich set of variables including:
%u - username %n - user part in user@domain, same as %u if there's no domain %d - domain part in user@domain, empty if there's no domain %h - home directory
Examples of a default mail environment might look like this:
mail_location = maildir:/var/mail/%1u/%u/Maildir mail_location = mbox:~/mail/:INBOX=/var/mail/%u mail_location = mbox:/var/mail/%d/%n/:INDEX=/var/indexes/%d/%n mail_location = mbox:/vhome/%d/home/%n:INBOX=/vhome/%d/home/%n/INBOX:INDEX=/imap-cache/%d-%n
Both MBOX and MAILDIR are supported.
- Complete IMAP4rev1 support
- Complete TLS/SSL support, using either GNUTLS or OpenSSL
- Supports THREAD and SORT extensions, required by many IMAP webmails
- SSL cipher control
- IPv6 networking
- Dovecot was written with security primarily in mind
- Control of ports and IP addresses to listen
- Runs in chrooted environment
- User restrictions
- Multiple file locking mechanisms - dotlock, fcntl, flock
- NFS compatible
Sun Solaris ZFS compatible
- LDA - Local Delivery Agent
- Sieve for mail filtering, auto replies, etc.
IMAP & POP3 session proxying capability
- Hidden name spaces
- Logging control
- Fast and memory efficient
- Control of processes
- Mailbox caching for speed
- Dynamically loadable modules
- Runs from xinetd or as stand alone, not working with 1.0alpha though
- Good documentation
- Readable easy to use configuration Files
- Active support email list
- Active development