Courier-IMAP - logo by Bas Boudrie <bboudrie@hetnet.nl>

Copyright 1999-2003, Double Precision, Inc. This software is distributed under the terms of the GNU General Public License. See COPYING for additional information.

Courier-IMAP is a server that provides IMAP access to Maildirs. This IMAP server does NOT handle traditional mailbox files (/var/spool/mail, and derivatives), it was written for the specific purpose of providing IMAP access to Maildirs.

"Maildir" is a directory-based mail storage format originally introduced in the Qmail mail server, and adopted as an alternative mail storage format by both Exim and Postfix. Courier-IMAP is popular on Qmail/Exim/Postfix sites that are configured to use maildirs. The primary advantage of maildirs is that multiple applications can access the same Maildir simultaneously without requiring any kind of locking whatsoever. It is a faster and more efficient way to store mail. It works particularly well over NFS, which has a long history of locking-related woes.

This is the same IMAP server that's included in the Courier mail server, but configured as a standalone IMAP server that can be used with other mail servers - such as Qmail, Exim, or Postfix - that deliver to maildirs. If you already have Courier installed, you do not need to download this version. If you install this version, you must remove it if you later install the entire Courier server. It's possible to have both versions installed, but this will require a delicate juggling act that you'll have to learn on your own.

Courier-IMAP implements several extensions to the basic Maildir mail storage format in order to support some additional features, such as folders and "soft" quotas. This is done in a way that's backwards compatible with the standard Maildir users (although, of course, they will ignore the additional features). Other software that understands and uses the same Maildir extensions is SqWebMail, and maildrop.

Features

The overall design goal of Courier-IMAP is to provide IMAP services to maildirs with the least amount of resources. For this reason there are many parameters that can be tuned during initial configuration and at runtime. Unwanted components can be removed completely, and they will not take up any resources. Few sites need the ability to search messages in twenty different character sets, so there's no need to waste memory storing large character set mapping tables. Sites that need multilingual searching and sorting abilities can selectively choose which character set tables will be supported by the server, individually. If SSL support is needed, it is available. If not, the SSL wrapper does not have to be installed at all. If the server does not have the sufficient resources to sort large folders, the server-based IMAP sorting function can be turned off.

Download

Download Courier-IMAP from http://www.courier-mta.org/download.php#imap

CVS Repository

The source code of the standalone Courier-IMAP version is also available from an anonymous CVS repository. See http://courier.sourceforge.net/status.html for more information.

Mailing list

Subscribe to the courier-imap mailing list from http://lists.sourceforge.net/mailman/listinfo/courier-imap, or send a message to <courier-imap-request@lists.sourceforge.net> and put "subscribe" in the subject line.

This mailing list does not accept mail from non-subscribers. You must subscribe to the list before sending any messages.

RPM installation notes

It is possible to create binary RPM packages directly from the source code tarball. A source RPM is not required. RPM 3.0.3 or higher is required. IMPORTANT: even though building an RPM saves you the headaches of manually compiling the code, you should still read the INSTALL file as it contains many important details you need to know.

Just as the source cannot be compiled by root, the Courier-IMAP RPMs cannot be built as root either. However, by default, RPM is not configured to be used for building software as a non-root user. It will be necessary to make some minor changes to the RPM configuration to enable building as a non-root user. See the FAQ for more information.

To build a binary RPM package, enter:

rpm -ta courier-imap-1.7.1.tar.bz2

or

rpmbuild -ta courier-imap-1.7.1.tar.bz2   # For RPM 4.1 (Red Hat 8.0+)

This builds the following packages:

The INSTALL file in the Courier-IMAP package contains additional information about LDAP, PostgreSQL and MySQL authentication. If the build system does not have the required libraries (see INSTALL for a list of requirements), these subpackages will be empty.

NOTE: The binary RPM will not install if you use a PAM library and have another IMAP or a POP3 server installed. The binary RPM installs its own /etc/pam.d/imap and /etc/pam.d/pop3 configuration files, which are likely to conflict with the PAM configuration file from another IMAP or POP3 server. If you previously installed another IMAP or a POP3 server without using RPM, Courier-IMAP will successfully install and immediately overwrite your existing /etc/pam.d/imap and /etc/pam.d/pop3 files.

On systems that use inetd (such as Red Hat 6.2 or earlier), you will also have to manually delete the imap and pop-3 entries from /etc/inetd.conf as well. Courier-IMAP listens for client connections by itself. It doesn't need inetd, and you need to tell inetd to release that port.

On systems that use xinetd (such as Red Hat 7.0 and later), any xinetd entries for imap and pop3 ports must be disabled.

If the default options in the RPM build need to be changed, proceed as follows:

Copy courier-imap-1.7.1.tar.gz to your %{_topdir}/SOURCES directory, extract the file courier-imap.spec, then copy it to your %{_topdir}/SPECS directory. Make your custom changes to the spec file, then run "rpm -bb courier-imap.spec".

Also - if you are upgrading from the 0.14 or 0.15 RPMs, you may have to run the following command after upgrading from 0.14 or 0.15: /sbin/chkconfig --add courier-imap.

Documentation

The following documentation is included in the Courier-IMAP distribution. It is presented here for your convenience.

Links

The book Postfix talks about configuring the Postfix mail server to deliver to Maildirs, for Courier-IMAP.

Step-by-step instructions w/ screenshots for getting Mozilla 1.2.1, Outlook 2000, and Outlook Express 6 to work with Courier-IMAP.

Courier-IMAP + Maildrop + QMail with Virtual Domains HOWTO - self explanatory.

Install and Test Qmail with POP, IMAP and WebMail - a step by step tutorial on setting up a turn-key mail server.

http://www.gallowglass.org - how to setup your own private CA and then generate signed SSL certs for POP and IMAP over SSL.

Qmail FreeBSD toaster - another step by step tutorial, this one is based on FreeBSD.

Qmail VMailMgr and Courier-IMAP HOWTO - extensive documentation on integrating Courier-IMAP with the Qmail mail server and the VMailMgr virtual domain manager.

A patch to use DRAC with Courier-IMAP is available at http://aelyn.hell-city.org/courier-imap-popd-drac.patch.

SecurityFocus's article titled "Clear Text Communication: Slaying the Beast Part II" talks about general issues concerning E-mail and security. Courier-IMAP is briefly mentioned in this article.

A patch that logs additional accounting information to syslog: ftp://ftp.aerasec.de/pub/linux/courier-imap/.


Sam Varshavchik

<mrsam@courier-mta.com>