
                                 Courier-IMAP

   Copyright 1999-2000, 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 Courier-IMAP is very often
   installed alongside Qmail. 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 traditionally is very
   problematic as far as locking is concerned.

   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 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

     * Extremely small footprint. On x86, Courier-IMAP's main daemon is a
       fraction of the size of the UW-IMAP server, and has a greatly
       reduced memory footprint.
     * Abstract authentication modules. Authentication of login userid
       and password is wrapped up into a completely stand-alone module.
       Several modules are provided to authenticate using the traditional
       password/shadow files, via the PAM library, or an LDAP server
       (requires OpenLDAP 1.2.11, OpenLDAP 2.0 is not yet supported). An
       experimental authentication module for MySQL is also available.
       You can also write your own custom userid/password validation
       program. A "custom" authentication module is included, which
       authenticates absolutely nothing. Add your own code to it in order
       to implement a site-specific authentication mechanism.
     * Virtual mailboxes. The userdb authentication module uses either a
       GBDM or DB database to map arbitrary userids to maildirs. Perl
       scripts are included to manage this database. There's also an
       authentication module that implements the vpopmail virtual mailbox
       implementation.
     * Ability to restrict the maximum number of IMAP logins, and the
       maximum number of logins from the same IP address. This will
       prevent denial-of-service attacks where the attacker attempts to
       overload the server with multiple login connections.
     * Shared folders. With additional server-side setup, folders can be
       shared between groups of accounts.
     * IMAP over SSL. If OpenSSL is installed, Courier-IMAP will,
       optionally, accept IMAP connections over SSL. The IMAP STARTTLS
       extension is also implemented.
     * IPv6 support, if available.
     * IMAP extensions that implement server-side sorting. This can be
       optionally disabled in environments that have limited resources.
     * Optional support for sorting and searching in non-English
       character sets. Non-English character set tables are optional, and
       will not take up any additional overhead unless they are
       specifically included. Download the source code to obtain a list
       of currently supported character sets.
     * By popular request, a compatible POP3 server is now included in
       the Courier-IMAP package, that uses the same authentication
       modules. The POP3 server can only access the INBOX, and cannot
       access any folders.

   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 both during initial configuration
   and during 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-users mailing list from
   http://lists.sourceforge.net/mailman/listinfo/courier-users, or send a
   message to <courier-users-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.2.tar.gz

   This builds the following packages:

     * courier-imap - the base package.
     * courier-imap-ldap - subpackage that includes support for
       authenticating from an LDAP directory.
     * courier-imap-mysql - subpackage that includes support for
       authenticating from a MySQL database.

   The INSTALL file in the Courier-IMAP package contains additional
   information about LDAP 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.2.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.
     * ChangeLog
     * README: Installation and some general documentation
     * FAQ: Frequently Asked Questions
     * README.imap: Hints on configuring IMAP clients
     * authlib: Documentation on the authentication library used by
       Courier-IMAP. You want to read this if you would like to write
       your own authentication modules.
     * README.maildirquota: Enhancements by Courier-IMAP to the
       traditional Maildir format, and README.sharedfolders: How
       Courier-IMAP implements shared folders. These documents describe
       how Courier-IMAP implements various features that are not a part
       of the traditional maildir mailbox.
     * BUGS: known bugs.

Links

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

   There's a patch to use Courier-IMAP's authentication modules with
   Qmail's POP3 server, at
   http://homepages.strath.ac.uk/~ras97108/authpop/index.html.
     _________________________________________________________________

   Sam Varshavchik <mrsam@courier-mta.com>
