Now is the good time to mention that you MUST read the contents of INSTALL after downloading and unpacking the source code. No exceptions. When downloading via CVS, the install file in the courier module is hidden in a subdirectory (it will be moved to INSTALL by make dist), so please read the online version. Other modules have INSTALL.html at the top level, which can be read with any browser.

Download the source code tarball from This download page also contains the latest releases of the individual Courier component packages: Courier-IMAP, SqWebMail, and maildrop. Ad

Additionally, more frequent, but less stable, builds are regularly uploaded to

Download via CVS

The following applies for the entire Courier source code distribution, and sub-modules (Courier-IMAP, sqwebmail, maildrop).

In order to build from the CVS repository, you must the following additional software installed:

  1. autoconf 2.53.

  2. automake 1.6.3.

  3. libtool 1.4.2

  4. gettext 0.11.4

  5. gmake, of course.

  6. sysconftool - this is an extra autoconf macro used by Courier's

  7. The following tools that convert Docbook SGML to HTML and man page documentation: OpenJade, docbook DSSL stylesheets, and sgml-common, docbook 3.0 and 3.1 DTDs, and docbook-utils.
  8. These additional dependencies are only required if building from CVS, and not the packaged tarballs.

    The source code can be checked out with the following commands:
        export CVSROOT
        cvs login

    Press ENTER when asked for a password (blank password).

    cvs -z3 checkout -r courier-latest courier - get the entire Courier mail server source code, or:

    cvs -z3 checkout -r courier-imap-latest courier-imap - get just the standalone IMAP server source code, or:

    cvs -z3 checkout -r sqwebmail-latest sqwebmail - get just the standalone webmail server source code, or:

    cvs -z3 checkout -r maildrop-latest maildrop - get just the standalone version of Courier's mail filter's source code.

    NOTE: Automatically-generated configure and Makefile, libtool, and sysconftool scripts are NOT stored in the repository, and you must build them yourself. Fortunately, it's very easy to do this. Simply run the following command after checking out any one of these modules:

        sh autobloat

    The autobloat script automatically runs automake, autoconf, libtool, sysconftool, from the current directory.

    NOTE: The "courier" module is the entire mail server. The other modules extract selected portions, with a different top-level makefile that builds a standalone package. You only need to obtain the courier module, to get the source code for Courier. See Introduction for more information.

    NOTE: the HEADs of each module contain the latest development versions, which may not be very stable. Use the tags specified above to obtain the latest "semi" stable release. Usually the "latest" tags will match the source code in the most recent tarball, but they may include some additional patches for the next release.

    Debian packages

    Questions about the Debian port should be mailed to <>.

    Building RPMs

    You can build binary Courier RPMs directly from the tarball, using RPM version 4.0.2 or higher. For example:

    rpm -ta courier-0.41.0.tar.bz2

    For RPM 4.1 and higher (Red Hat 8.0), use rpmbuild instead of rpm:

    rpmbuild -ta courier-0.41.0.tar.bz2

    Because the RPMs can be built directly from the tarball, binary RPMs will not be distributed separately.

    Note that Courier does not allow itself to be built as root. A single mistake -- especially when trying to build a system-level utility -- can have serious consequences. Therefore the configuration script won't let you. There's an undocumented flag to disable the check, for folks who don't make mistakes :-) See the FAQ for instructions on how to configure RPM to build packages as non-root.

    Building the RPM packages yourself will also result in the packages being customized for your system. This procedure builds the following packages:

NOTE: these packages are built with certain directories in a non-default location. Specifically, the configuration files are installed in /etc/courier, the mail spool is installed in /var/spool/courier, and the manual pages are installed directly in /usr/man. Other configuration settings are left at their defaults, which means, for example, that the IMAP server is not compiled to include workarounds for bugs in several IMAP clients. If you need to change the defaults, you will have to build your own packages. These RPM packages are customized to work in my personal Linux distro (usually the latest version of Red Hat+patches), and these configuration settings may need to be adjusted for other distros. It's not that it's not possible to build a generic RPM, it's just that these RPM packages are built for my convenience's sake only.

NOTE: the first time the system boots after installing the Courier RPM, the system may pause for several minutes at the "Starting Courier" prompt. That's because the startup script automatically creates test SSL certificates the first time the script is executed (provided that SSL support is available). This can take as much as 5-6 minutes on a slow machine. Subsequent starts should take only a few seconds. Have patience. Also note that the main Courier RPM has the ESMTP server turned off. You must manually enable receiving mail via ESMTP by editing the esmtpd configuration file.

RPM customization

If you want to customize your RPMs, you should extract the spec file from the tarball, and edit it yourself. However, there is a hook that can be used to pass additional flags to the configure script, from the RPM command line. Example:

rpm -ta --define 'xflags --without-explicitsync --enable-https' \

You can use most of the configure script options, except for directory location options. See INSTALL for a list of options to the configure script.

PREV: Introduction NEXT: Installation