glfs/server/mail/courier.xml
Randy McMurchy 793c1ba06c Added md5sums to Chapter 21 packages
git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@3445 af4574ff-66df-0310-9fd7-8a98e5e911e0
2005-02-12 02:51:10 +00:00

967 lines
37 KiB
XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!ENTITY courier-download-http "http://prdownloads.sourceforge.net/courier/courier-&courier-version;.tar.bz2">
<!ENTITY courier-download-ftp " ">
<!ENTITY courier-md5sum "639bb3b236914e3b86f287ce3f55264e">
<!ENTITY courier-size "4.3 MB">
<!ENTITY courier-buildsize "102 MB">
<!ENTITY courier-time "2.62 SBU">
]>
<sect1 id="courier" xreflabel="Courier-&courier-version;">
<sect1info>
<othername>$LastChangedBy$</othername>
<date>$Date$</date>
</sect1info>
<?dbhtml filename="courier.html"?>
<title>Courier-&courier-version;</title>
<indexterm zone="courier">
<primary sortas="a-Courier">Courier MTA</primary></indexterm>
<sect2>
<title>Introduction to <application>Courier</application></title>
<para>The <application>Courier</application> package contains a Mail Transport
Agent (<acronym>MTA</acronym>). This is useful for sending email to other users
of your host machine. It can also be configured to be a central mail server for
your domain or a mail relay agent. The <application>Courier</application>
packages also includes a web-based email interface, <acronym>IMAP</acronym>,
<acronym>IMAP</acronym>-<acronym>SSL</acronym>, <acronym>POP</acronym>3, and
<acronym>POP</acronym>3-<acronym>SSL</acronym>.</para>
<sect3><title>Package information</title>
<itemizedlist spacing='compact'>
<listitem><para>Download (HTTP):
<ulink url="&courier-download-http;"/></para></listitem>
<listitem><para>Download (FTP):
<ulink url="&courier-download-ftp;"/></para></listitem>
<listitem><para>Download MD5 sum: &courier-md5sum;</para></listitem>
<listitem><para>Download size: &courier-size;</para></listitem>
<listitem><para>Estimated disk space required:
&courier-buildsize;</para></listitem>
<listitem><para>Estimated build time:
&courier-time;</para></listitem></itemizedlist>
</sect3>
<sect3><title><application>Courier</application> dependencies</title>
<sect4><title>Required</title>
<para><xref linkend="gdbm"/></para>
</sect4>
<sect4><title>Optional</title>
<para><xref linkend="mysql"/> or <xref linkend="postgresql"/>,
<xref linkend="Linux_PAM"/>,
<xref linkend="openssl"/>,
<xref linkend="fam"/>,
<xref linkend="openldap"/>,
<xref linkend="apache"/>,
<xref linkend="ispell"/> or <xref linkend="aspell"/>,
<xref linkend="gnupg"/>,
<xref linkend="expect"/>,
<xref linkend="gs"/> or <xref linkend="espgs"/>,
<ulink url="http://netpbm.sourceforge.net/">Netpbm</ulink> and
<ulink url="http://alpha.greenie.net/mgetty/">Mgetty+Sendfax</ulink></para>
</sect4>
</sect3>
</sect2>
<sect2>
<title>Installation of <application>Courier</application></title>
<note><para><application>Courier's</application> tarball must be extacted as an
unprivileged user or the configure script will fail.</para></note>
<para>Before you compile the program, you need to create the courier user
and group that is expected to be in place when the install script executes.
As the root user, add the courier user and group with the following
commands:</para>
<screen><userinput role="root"><command>groupadd courier &amp;&amp;
useradd -c 'Courier Mail Server' -d /dev/null \
-g courier -s /bin/false courier</command></userinput></screen>
<para>The install script also expects a bin user. If you already have a user
named bin, this step can be safely ignored.</para>
<screen><userinput role="root"><command>useradd -c 'bin' -d /dev/null -g bin -u 1 bin</command></userinput></screen>
<para><application>Courierfilter</application> requires the directory
<filename class="directory">/var/run/courier</filename> to store
all the <application>Courier</application> pid and lockfiles.
<filename class="directory">/var/lock/subsys</filename> also must exist
for the master lock file for <application>Courier</application>. Issue
the following commands to create these directories:</para>
<screen><userinput role="root"><command>install -d /var/run/courier -o courier -g courier -m755 &amp;&amp;
install -d /var/lock/subsys -o root -g root -m755</command></userinput></screen>
<para>Build <application>Courier</application> as an unprivileged user
with the following commands:</para>
<screen><userinput><command>./configure --prefix=/usr --libexecdir=/usr/lib/courier \
--datadir=/usr/share/courier --sysconfdir=/etc/courier \
--localstatedir=/var/lib/courier --with-piddir=/var/run/courier \
--disable-root-check --with-mailuser=courier \
--with-mailgroup=courier \
--with-paranoid-smtpext --disable-autorenamesent \
--enable-workarounds-for-imap-client-bugs --with-db=gdbm &amp;&amp;
make</command></userinput></screen>
<para>Once again, become the root user and install
<application>Courier</application> with the following commands:</para>
<screen><userinput role="root"><command>make install &amp;&amp;
make install-configure</command></userinput></screen>
</sect2>
<sect2>
<title>Command explanations</title>
<para><parameter>--libexecdir=/usr/lib/courier</parameter>: Specifies
the directory which contains programs and libraries that cannot be
directly executed from the command-line.</para>
<para><parameter>--datadir=/usr/share/courier</parameter>: Specifies the
directory where miscellaneous shell scripts,
<application>Perl</application> scripts, and data files will be
installed.</para>
<para><parameter>--localstatedir=/var/spool/courier</parameter>:
Specifies the directory that will hold the mail queue, and other
temporary data.</para>
<para><parameter>--with-piddir=/var/run/courier</parameter>: Specifies
the directory where <application>Courier</application>'s
<filename>PID</filename> files are stored when
<application>Courier</application> is active.</para>
<para><option>--disable-root-check</option>: Allows
<application>Courier</application> to be built as the root user.</para>
<para><parameter>--with-mailuser=courier</parameter>: All except two
<application>Courier</application> daemons run as a non-privileged user.
This option specifies the userid that <application>Courier</application>
will install and run as.</para>
<para><parameter>--with-mailgroup=courier</parameter>: like
<option>--with-mailuser</option>, but specifies the group
<acronym>ID</acronym>.</para>
<para><option>--with-paranoid-smtpext</option>: Be paranoid when
negotiating Courier-specific <acronym>ESMTP</acronym> extensions with
remote servers. The <application>Courier</application> mail server
defines and implements certain experimental <acronym>ESMTP</acronym>
extensions: XVERP and XEXDATA. Problems may result in the event that
someone else uses the same name to implement some other extension. If
this option is specified, <application>Courier's</application>
<acronym>ESMTP</acronym> server will also advertise a dummy
<acronym>ESMTP</acronym> capability called XCOURIEREXTENSIONS, and will
not recognize any Courier-specific extensions unless the remote mail
server also advertises this dummy <acronym>ESMTP</acronym>
capability.</para>
<para><option>--disable-autorenamesent</option>: Do not rename the Sent
folder every month. This option can also be controlled by the
<envar>SQWEBMAIL_AUTORENAMESENT</envar> environment variable.</para>
<para><option>--enable-workarounds-for-imap-client-bugs</option>: There
are several confirmed bugs in some <acronym>IMAP</acronym> clients that
do not properly implement the <acronym>IMAP</acronym>4rev1 protocol.
This option enables some workarounds for those buggy
<acronym>IMAP</acronym> clients. NOTE: <command>make check</command>
will fail if this option is used. You should first configure without
this option, and if all post-configuration tests succeed, rerun
configure with this option and recompile.</para>
<para><parameter>--with-db=gdbm</parameter>:
<application>Courier</application> requires either the
<application><acronym>GDBM</acronym></application> or the
<application>DB</application> database library.
<application><acronym>GDBM</acronym></application> is used if both are
present. This option forces the selection of
<application>GDBM</application> as courier is currently broken when used
with <application>DB</application>.</para>
<!-- # Note - Courier will build fine with <xref linkend="db"/>, but all
the database files will not be created correctly -->
<para><parameter>--with-ispell=/usr/bin/aspell</parameter>:
<application>Courier</application>'s webmail server can use spell
checking, if <command>configure</command> finds
<application>ispell</application> or if you explicitly set the location
of <application>aspell</application>.</para>
<para><parameter>--enable-mimetypes=<replaceable>[location of mime.types
file]</replaceable></parameter>: Use this switch if you receive an error
saying that the <filename>mime.types</filename> file could not be found.</para>
</sect2>
<sect2 id="etc-courier-star">
<title>Configuring <application>Courier</application></title>
<indexterm zone="courier etc-courier-star">
<primary sortas="e-etc-courier-star">/etc/courier/*</primary></indexterm>
<sect3><title>Configuration Files</title>
<para><filename>/etc/courier/*</filename></para>
</sect3>
<sect3><title>Configuration Information</title>
<para>While still as root, you will need to create the following files with
the contents specified.</para>
<para><filename>/etc/courier/defaultdomain</filename></para>
<screen><userinput role="root"><command>cat &gt; /etc/courier/defaultdomain &lt;&lt; "EOF"</command>
<replaceable>[yourdomain]</replaceable>
<command>EOF</command></userinput></screen>
<para><filename>/etc/courier/me</filename></para>
<screen><userinput role="root"><command>cat &gt; /etc/courier/me &lt;&lt; "EOF"</command>
<replaceable>[servername.yourdomain]</replaceable>
<command>EOF</command></userinput></screen>
<para><filename>/etc/courier/locals</filename></para>
<screen><userinput role="root"><command>cat &gt; /etc/courier/locals &lt;&lt; "EOF"</command>
localhost
<replaceable>[yourdomain]</replaceable>
<command>EOF</command></userinput></screen>
<para><filename>/etc/courier/esmtpacceptmailfor.dir/system</filename></para>
<screen><userinput role="root"><command>cat &gt; /etc/courier/esmtpacceptmailfor.dir/system &lt;&lt; "EOF"</command>
localhost
<replaceable>[yourdomain]</replaceable>
<command>EOF</command></userinput></screen>
<para>You will also need to edit the
<filename>/etc/courier/aliases/system</filename> file and change the
following entry.</para>
<screen><userinput>postmaster: <replaceable>[your administrator email]</replaceable></userinput></screen>
<para>If you want to deny access from some hosts from sending mail, you
will need to edit the
<filename>/etc/courier/smtpaccess/default</filename> file.</para>
<para>If you wish to host mail for non local domains including virtual
domains, you must add them to
<filename>/etc/courier/hosteddomains</filename>. This file should exist
whether you need a hosted domain list or not:</para>
<screen><userinput role="root"><command>touch /etc/courier/hosteddomains</command></userinput></screen>
<para>After the above steps are completed you will need to run the
following commands:</para>
<screen><userinput role="root"><command>makesmtpaccess &amp;&amp;
makehosteddomains &amp;&amp;
makealiases</command></userinput></screen>
<para>For each user, you will need to create a
<filename class="directory">Maildir</filename> directory:</para>
<screen><userinput role="root"><command>cd /home/<replaceable>[username]</replaceable> &amp;&amp;
maildirmake Maildir &amp;&amp;
chown <replaceable>[username]</replaceable>.<replaceable>[username]</replaceable> Maildir -R</command></userinput></screen>
<para>If you wish to use <acronym>SSL</acronym> with
<application>Courier</application>, you should obtain certificates and
store them in <filename>/usr/share/courier</filename>. You can
optionally create self-signed, test certificates with the following
commands:</para>
<screen><userinput role="root"><command>mkesmtpdcert &amp;&amp;
mkimapdcert &amp;&amp;
mkpop3dcert</command></userinput></screen>
<para>All of <application>Courier</application>'s configuration files reside
in the directory <filename class="directory">/etc/courier/</filename>. For
each service <acronym>SMTP</acronym>, <acronym>POP3</acronym> and
<acronym>IMAP</acronym>, you will have a standard config file, and an
<acronym>SSL</acronym> config file. For each service that you
wish to utilize, you will need to edit the configuration file, and
change the <replaceable>[DAEMON]</replaceable>START variable from 'NO' to
'YES'. For example, to use <acronym>SMTP</acronym> with
<acronym>SSL</acronym>, you'll need to edit
<filename>/etc/courier/esmtpd-ssl</filename> and change the value of
'ESMTPDSSLSTART' to 'YES'. Make the same change for each service
configuration that you wish to use with
<application>Courier</application>.</para>
<para>If you wish to use <acronym>LDAP</acronym>, an
<acronym>LDAP</acronym> configuration file should be created:</para>
<screen><userinput role="root"><command>echo "LDAPALIASDSTART=YES" > /etc/courier/ldapaliasd</command></userinput></screen>
<para>Similarly, if you wish to use webmail, you should create the webmail
configuration file:</para>
<screen><userinput role="root"><command>echo "WEBMAILDSTART=YES" > /etc/courier/webmaild</command></userinput></screen>
<para>You will also need to copy the <filename>webmail</filename> file from
<filename>/usr/lib/courier/courier/webmail</filename> to the
<filename class='directory'>cgi-bin</filename> directory of your
<application>Apache</application> server.</para>
<screen><userinput role="root"><command>cp -a /usr/lib/courier/courier/webmail/webmail /srv/www/cgi-bin</command></userinput></screen>
<para>You will then need to copy the images to a directory under your
<filename class='directory'>htdocs</filename> directory of your
<application>Apache</application> server. The directory needs to be named
<filename class='directory'>webmail</filename> or you need to specify it
during the configure phase with
<parameter>--enable-imageurl=<replaceable>[URL]</replaceable></parameter>.</para>
<screen><userinput role="root"><command>cp -a /usr/share/courier/sqwebmail/images /srv/www/htdocs/webmail</command></userinput></screen>
<para>If you wish to utilze the webadmin utility, you will need to copy the
<filename>webadmin</filename> file from
<filename class="directory">/usr/lib/courier/courier/webmail</filename>
to your <filename class="directory">cgi-bin</filename> directory of your
<application>Apache</application> server.</para>
<screen><userinput role="root"><command>cp -a /usr/lib/courier/courier/webmail/webadmin /srv/www/cgi-bin</command></userinput></screen>
<para>You also need to put the password into the file
<filename>/etc/courier/webadmin/password</filename>:</para>
<screen><userinput role="root"><command>cat &gt; /etc/courier/webadmin/password &lt;&lt; "EOF"</command>
<replaceable>[password]</replaceable>
<command>EOF</command></userinput></screen>
<para>If you are not using <acronym>SSL</acronym> on your <application>Apache
</application> server, you will also need to add
<filename>/etc/courier/webadmin/unsecureok</filename>, so you will be able
to use your web based administration tool.</para>
<screen><userinput role="root"><command>touch /etc/courier/webadmin/unsecureok</command></userinput></screen>
<para>If you use <application>Linux-PAM</application> on your system,
you will need to create the <acronym>PAM</acronym> configuration files:</para>
<screen><userinput role="root"><command>cat &gt; /etc/pam.d/esmtp &lt;&lt; "EOF"</command>
# Begin /etc/pam.d/esmtp
auth required pam_unix.so try_first_pass
account required pam_unix.so
session required pam_unix.so
# End /etc/pam.d/esmtp
<command>EOF
cat &gt; /etc/pam.d/pop3 &lt;&lt; "EOF"</command>
# Begin /etc/pam.d/pop3
auth required pam_unix.so try_first_pass
account required pam_unix.so
session required pam_unix.so
# End /etc/pam.d/pop3
<command>EOF
cat &gt; /etc/pam.d/imap &lt;&lt; "EOF"</command>
# Begin /etc/pam.d/imap
auth required pam_unix.so try_first_pass
account required pam_unix.so
session required pam_unix.so
# End /etc/pam.d/imap
<command>EOF
cat &gt; /etc/pam.d/webmail &lt;&lt; "EOF"</command>
# Begin /etc/pam.d/webmail
auth required pam_unix.so try_first_pass
account required pam_unix.so
session required pam_unix.so
# End /etc/pam.d/webmail
<command>EOF</command></userinput></screen>
<para id="courier-init">Finally, if you wish to start the
<application>Courier</application> server at boot, install
the <filename>/etc/rc.d/init.d/courier</filename> bootscript included in the
<xref linkend="intro-important-bootscripts"/> package.</para>
<indexterm zone="courier courier-init">
<primary sortas="f-courier-init">courier</primary></indexterm>
<screen><userinput role="root"><command>make install-courier</command></userinput></screen>
</sect3>
<!-- Begin virtual user setup * To be removed once added to the hint. -->
<sect3>
<title>Configuring for virtual users</title>
<para>These instructions will configure <application>Courier</application>
to lookup virtual users in a <application>MySQL</application> database.
Begin by making the following changes to
<filename>/etc/courier/authmysqlrc</filename>:</para>
<screen><userinput>MYSQL_SERVER localhost
MYSQL_USERNAME courier
MYSQL_PASSWORD <replaceable>[your choice]</replaceable>
MYSQL_SOCKET /tmp/mysql.sock
MYSQL_PORT 3306
MYSQL_DATABASE courier_mail
MYSQL_USER_TABLE users
MYSQL_CLEAR_PWFIELD clear
DEFAULT DOMAIN <replaceable>[your domain]</replaceable>
MYSQL_QUOTA_FIELD quota</userinput></screen>
<para>Connect to <application>MySQL</application>:</para>
<screen><userinput role="root"><command>mysql -p</command></userinput></screen>
<para>Create the <filename>courier_mail</filename> database and setup
the users table:</para>
<screen><userinput role="root"><command>CREATE DATABASE courier_mail;
USE courier_mail
CREATE TABLE users (
id char(128) DEFAULT '' NOT NULL,
crypt char(128) DEFAULT '' NOT NULL,
clear char(128) DEFAULT '' NOT NULL,
name char(128) DEFAULT '' NOT NULL,
uid int(10) unsigned DEFAULT '65534' NOT NULL,
gid int(10) unsigned DEFAULT '65534' NOT NULL,
home char(255) DEFAULT '' NOT NULL,
quota char(255) DEFAULT '' NOT NULL,
KEY id (id(128))
);</command></userinput></screen>
<para>Grant all priveledges to the courier user created earlier:</para>
<screen><userinput role="root"><command>GRANT ALL PRIVILEGES ON *.* TO courier@localhost \
IDENTIFIED BY '<replaceable>[password]</replaceable>' WITH GRANT OPTION;
QUIT</command></userinput></screen>
<para>Create a virtual mailman user and group:</para>
<screen><userinput role="root"><command>groupadd -g 9000 vmailman &amp;&amp;
useradd -c 'Virtual Mailman' -g vmailman -m -k /dev/null -u 9000 vmailman</command></userinput></screen>
<para>Create a mail directory for a new virtual user:</para>
<screen><userinput role="root"><command>cd /home/vmailman &amp;&amp;
mkdir <replaceable>[virtual_user]</replaceable> &amp;&amp;
cd <replaceable>[virtual_user]</replaceable> &amp;&amp;
maildirmake Maildir &amp;&amp;
chown vmailman.vmailman Maildir -R</command></userinput></screen>
<para>Now, connect the the <application>MySQL</application> database as
the courier user:</para>
<screen><userinput role="root"><command>mysql -u courier -p</command></userinput></screen>
<para>To add the virtual user you need to enter at least one version of the
password either clear text or encrypted.</para>
<para>Add the first virtual user with the following commands:</para>
<screen><userinput role="root"><command>USE courier_mail
INSERT INTO users VALUES (
'<replaceable>[virtual_users]</replaceable>@<replaceable>[domain.com]</replaceable>,
'<replaceable>[encrypted password or blank]</replaceable>',
'<replaceable>[clear text password or blank]</replaceable>',
'<replaceable>[User's Name]</replaceable>',
9000,
9000,
'<replaceable>[location of Maildir]</replaceable>',
'<replaceable>[Quota in Bytes']</replaceable>
);
QUIT</command></userinput></screen>
<para>For example:</para>
<screen><userinput role="root"><command>INSERT INTO users VALUES (
'blfsuser@linuxfromscratch.org',
'',
'password',
'BLFS User',
9000,
9000,
'/home/vmailman/blfsuser',
''
);</command></userinput></screen>
</sect3>
<!-- End of Virtual user setup -->
</sect2>
<sect2>
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>addcr, authenumerate, cancelmsg, courier, courier-config,
courieresmtpd, courierfilter, courierlogger, couriermlm, couriertcpd,
couriertls, deliverquota, dotforward, esmtpd, esmtpd-msa, esmtpd-ssl,
filterctl, imapd, imapd-ssl, lockmail, mailbot, maildiracl, maildirkw,
maildirmake, maildrop, mailq, makeacceptmailfor, makealiases, makedat,
makehosteddomains, makemime, makepercentrelay, makesmtpaccess,
makesmtpaccess-msa, makeuserdb, makeuucpneighbors, mimegpg,
mkesmtpdcert, mkimapdcert, mkpop3dcert, pop3d, pop3d-ssl, preline,
pw2userdb, reformail, reformime, rmail, sendmail, sharedindexinstall,
sharedindexsplit, showconfig, showmodules, testmxlookup, userdb,
userdbpw, vchkpw2userdb, webgpg, webmaild</seg>
<seg>/etc/courier, /usr/lib/courier, /usr/share/courier, /var/lib/courier,
/var/lock/subsys, /var/run/courier and /var/spool/courier</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<varlistentry id="cancelmsg">
<term><command>cancelmsg</command></term>
<listitem><para>removes a message from the mail queue.</para>
<indexterm zone="courier cancelmsg">
<primary sortas="b-cancelmsg">cancelmsg</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="courier-prog">
<term><command>courier</command></term>
<listitem><para>is an administrative command used to control the
<application>Courier</application> scheduling engine.</para>
<indexterm zone="courier courier-prog">
<primary sortas="b-courier">courier</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="courierfax">
<term><command>courierfax</command></term>
<listitem><para>sends email messages by fax.</para>
<indexterm zone="courier courierfax">
<primary sortas="b-courierfax">courierfax</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="courierfilter">
<term><command>courierfilter</command></term>
<listitem><para>starts and stops all mail filters installed by
<command>filterctl</command>.</para>
<indexterm zone="courier courierfilter">
<primary sortas="b-courierfilter">courierfilter</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="courierldapaliasd">
<term><command>courierldapaliasd</command></term>
<listitem><para>supports mail address aliasing using an LDAP directory.</para>
<indexterm zone="courier courierldapaliasd">
<primary sortas="b-courierldapaliasd">courierldapaliasd</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="courierlogger">
<term><command>courierlogger</command></term>
<listitem><para>captures error messages from other
<application>Courier</application> applications and forwards them to
the system logger.</para>
<indexterm zone="courier courierlogger">
<primary sortas="b-courierlogger">courierlogger</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="couriermlm">
<term><command>couriermlm</command></term>
<listitem><para>sets up, maintains, and manages mailing lists.</para>
<indexterm zone="courier couriermlm">
<primary sortas="b-couriermlm">couriermlm</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="courierperlfilter">
<term><command>courierperlfilter</command></term>
<listitem><para>is a sample filter written in
<application>Perl</application>.</para>
<indexterm zone="courier courierperlfilter">
<primary sortas="b-courierperlfilter">courierperlfilter</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="courierpop3d">
<term><command>courierpop3d</command></term>
<listitem><para>is a <application>Courier</application>
<acronym>POP</acronym>3 server.</para>
<indexterm zone="courier courierpop3d">
<primary sortas="b-courierpop3d">courierpop3d</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="courierpop3login">
<term><command>courierpop3login</command></term>
<listitem><para>reads the <acronym>POP</acronym>3 userid and password and
passes them to the authentication modules.</para>
<indexterm zone="courier courierpop3login">
<primary sortas="b-courierpop3login">courierpop3login</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="couriertcpd">
<term><command>couriertcpd</command></term>
<listitem><para>accepts incoming network connections, and runs other
<application>Courier</application> programs after establishing each network
connection.</para>
<indexterm zone="courier couriertcpd">
<primary sortas="b-couriertcpd">couriertcpd</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="couriertls">
<term><command>couriertls</command></term>
<listitem><para>is used by applications to encrypt a network connection
using <acronym>SSL</acronym>/<acronym>TLS</acronym>.</para>
<indexterm zone="courier couriertls">
<primary sortas="b-couriertls">couriertls</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="dotforward">
<term><command>dotforward</command></term>
<listitem><para>is a compatibility module that reads forwarding
instructions in <filename>$HOME/.forward</filename>.</para>
<indexterm zone="courier dotforward">
<primary sortas="b-dotforward">dotforward</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="dupfilter">
<term><command>dupfilter</command></term>
<listitem><para>is a threaded filter that tries to block junk E-mail by
attempting to detect multiple copies of the same message, which are
rejected.</para>
<indexterm zone="courier dupfilter">
<primary sortas="b-dupfilter">dupfilter</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="esmtpd">
<term><command>esmtpd</command></term>
<listitem><para>is a control script for courieresmtpd.</para>
<indexterm zone="courier esmtpd">
<primary sortas="b-esmtpd">esmtpd</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="esmtpd-msa">
<term><command>esmtpd-msa</command></term>
<listitem><para>is a control script for courieresmtpd, but adds message
submission port 587 for the <acronym>MSA</acronym> protocol.</para>
<indexterm zone="courier esmtpd-msa">
<primary sortas="b-esmtpd-msa">esmtpd-msa</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="filterctl">
<term><command>filterctl</command></term>
<listitem><para>installs or uninstalls global mail filters.</para>
<indexterm zone="courier filterctl">
<primary sortas="b-filterctl">filterctl</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="imapd">
<term><command>imapd</command></term>
<listitem><para>is the
<application>Courier</application>-<acronym>IMAP</acronym>
server.</para>
<indexterm zone="courier imapd">
<primary sortas="b-imapd">imapd</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="lockmail">
<term><command>lockmail</command></term>
<listitem><para>is a helper utility for locking mailbox files.</para>
<indexterm zone="courier lockmail">
<primary sortas="b-lockmail">lockmail</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="mailbot">
<term><command>mailbot</command></term>
<listitem><para>is a <acronym>MIME</acronym>-aware autoresponder utility.</para>
<indexterm zone="courier mailbot">
<primary sortas="b-mailbot">mailbot</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="maildiracl">
<term><command>maildiracl</command></term>
<listitem><para>manages access control lists.</para>
<indexterm zone="courier maildiracl">
<primary sortas="b-maildiracl">maildiracl</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="maildirkw">
<term><command>maildirkw</command></term>
<listitem><para>modifies
<application>Courier</application>-<acronym>IMAP</acronym> compatible maildir
message keywords.</para>
<indexterm zone="courier maildirkw">
<primary sortas="b-maildirkw">maildirkw</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="maildirmake">
<term><command>maildirmake</command></term>
<listitem><para>creates maildirs, and maildir folders.</para>
<indexterm zone="courier maildirmake">
<primary sortas="b-maildirmake">maildirmake</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="maildrop">
<term><command>maildrop</command></term>
<listitem><para>is a replacement local mail delivery agent that includes a
mail filtering language.</para>
<indexterm zone="courier maildrop">
<primary sortas="b-maildrop">maildrop</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="mailq-courier">
<term><command>mailq</command></term>
<listitem><para>displays a list of all messages that have not been
delivered yet.</para>
<indexterm zone="courier mailq-courier">
<primary sortas="b-mailq">mailq</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="makeacceptmailfor">
<term><command>makeacceptmailfor</command></term>
<listitem><para>builds a list of domains to accept mail for, from the
<filename class="directory">/etc/courier/esmtpacceptmailfor.dir</filename>
directory.</para>
<indexterm zone="courier makeacceptmailfor">
<primary sortas="b-makeacceptmailfor">makeacceptmailfor</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="makealiases">
<term><command>makealiases</command></term>
<listitem><para>builds an alias database from one or more plain text
source files.</para>
<indexterm zone="courier makealiases">
<primary sortas="b-makealiases">makealiases</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="makedat">
<term><command>makedat</command></term>
<listitem><para>is a utility to create <application>GDBM</application> or
<application>DB</application> files from plain text files.</para>
<indexterm zone="courier makedat">
<primary sortas="b-makedat">makedat</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="makehosteddomains">
<term><command>makehosteddomains</command></term>
<listitem><para>rebuilds the contents of the hosteddomains database from the
contents of <filename>/tools/etc/courier/hosteddomains</filename>.</para>
<indexterm zone="courier makehosteddomains">
<primary sortas="b-makehosteddomains">makehosteddomains</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="makemime">
<term><command>makemime</command></term>
<listitem><para>creates <acronym>MIME</acronym>-formatted messages from one
or more files.</para>
<indexterm zone="courier makemime">
<primary sortas="b-makemime">makemime</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="makepercentrelay">
<term><command>makepercentrelay</command></term>
<listitem><para>builds a list of %-relayed domains from the
<filename class="directory">percentrelay.dir</filename> directory.</para>
<indexterm zone="courier makepercentrelay">
<primary sortas="b-makepercentrelay">makepercentrelay</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="makesmtpaccess">
<term><command>makesmtpaccess</command></term>
<listitem><para>builds <acronym>ESMTP</acronym> server access files from the
<filename class="directory">/etc/courier/smtpaccess</filename>
directory.</para>
<indexterm zone="courier makesmtpaccess">
<primary sortas="b-makesmtpaccess">makesmtpaccess</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="makesmtpaccess-msa">
<term><command>makesmtpaccess-msa</command></term>
<listitem><para>builds <acronym>ESMTP</acronym> server access files from the
<filename class="directory">/etc/courier/smtpaccess</filename> directory.
This esmtp list is for the <acronym>MSA</acronym> protocol.</para>
<indexterm zone="courier makesmtpaccess-msa">
<primary sortas="b-makesmtpaccess-msa">makesmtpaccess-msa</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="makeuserdb">
<term><command>makeuserdb</command></term>
<listitem><para>builds a user/password db from the contents
of <filename class="directory">/tools/etc/courier/userdb</filename>.</para>
<indexterm zone="courier makeuserdb">
<primary sortas="b-makeuserdb">makeuserdb</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="mimegpg">
<term><command>mimegpg</command></term>
<listitem><para>signs, encrypts, or decrypts <acronym>MIME</acronym>-formatted
email messages using <application>GnuPG</application>.</para>
<indexterm zone="courier mimegpg">
<primary sortas="b-mimegpg">mimegpg</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="mkesmtpdcert">
<term><command>mkesmtpdcert</command></term>
<listitem><para>creates a secure <acronym>SMTP</acronym> test
certificate.</para>
<indexterm zone="courier mkesmtpdcert">
<primary sortas="b-mkesmtpdcert">mkesmtpdcert</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="mkimapdcert">
<term><command>mkimapdcert</command></term>
<listitem><para>creates a secure <acronym>IMAP</acronym> test
certificate.</para>
<indexterm zone="courier mkimapdcert">
<primary sortas="b-mkimapdcert">mkimapdcert</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="mkpop3dcert">
<term><command>mkpop3dcert</command></term>
<listitem><para>creates a secure <acronym>POP3</acronym> test
certificate.</para>
<indexterm zone="courier mkpop3dcert">
<primary sortas="b-mkpop3dcert">mkpop3dcert</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="pop3d">
<term><command>pop3d</command></term>
<listitem><para>is a wrapper script for <command>couriertcpd</command> to
start and stop the <acronym>POP3</acronym> service.</para>
<indexterm zone="courier pop3d">
<primary sortas="b-pop3d">pop3d</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="pop3d-ssl">
<term><command>pop3d-ssl</command></term>
<listitem><para>is a wrapper script for <command>couriertcpd</command> to
start and stop the <acronym>POP3</acronym> over <acronym>SSL</acronym>
service.</para>
<indexterm zone="courier pop3d-ssl">
<primary sortas="b-pop3d-ssl">pop3d-ssl</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="preline">
<term><command>preline</command></term>
<listitem><para>prepends legacy <filename>mbox</filename> headers to mail
messages.</para>
<indexterm zone="courier preline">
<primary sortas="b-preline">preline</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="reformail">
<term><command>reformail</command></term>
<listitem><para>reads a message on standard input, reformats it in some
way, and writes the message to standard output.</para>
<indexterm zone="courier reformail">
<primary sortas="b-reformail">reformail</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="reformime">
<term><command>reformime</command></term>
<listitem><para>is a utility for reformatting <acronym>MIME</acronym>
messages.</para>
<indexterm zone="courier reformime">
<primary sortas="b-reformime">reformime</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="sendmail-courier">
<term><command>sendmail</command></term>
<listitem><para>reads an email message and delivers the message to its
recipients.</para>
<indexterm zone="courier sendmail-courier">
<primary sortas="b-sendmail">sendmail</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="submit">
<term><command>submit</command></term>
<listitem><para>submits messages to <application>Courier</application> for
processing.</para>
<indexterm zone="courier submit">
<primary sortas="b-submit">submit</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="testmxlookup">
<term><command>testmxlookup</command></term>
<listitem><para>lists the names and <acronym>IP</acronym> addresses of mail
relays that receive mail for the domain.</para>
<indexterm zone="courier testmxlookup">
<primary sortas="b-testmxlookup">testmxlookup</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="userdb">
<term><command>userdb</command></term>
<listitem><para>is a script to individually manipulate entries in
<filename>/tools/etc/courier/userdb.</filename></para>
<indexterm zone="courier userdb">
<primary sortas="b-userdb">userdb</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="userdbpw">
<term><command>userdbpw</command></term>
<listitem><para>reads a single line of text on standard input, encrypts
it, and prints the encrypted result to standard output.</para>
<indexterm zone="courier userdbpw">
<primary sortas="b-userdbpw">userdbpw</primary></indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>