glfs/server/mail/courier.xml
Randy McMurchy 5254d12fef Standardized the id tag name of the Bootscripts package
git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@5497 af4574ff-66df-0310-9fd7-8a98e5e911e0
2005-12-29 01:38:36 +00:00

1079 lines
41 KiB
XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/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;">
<?dbhtml filename="courier.html"?>
<sect1info>
<othername>$LastChangedBy$</othername>
<date>$Date$</date>
<keywordset>
<keyword role="package">courier-&courier-version;.tar</keyword>
<keyword role="ftpdir">courier</keyword>
</keywordset>
</sect1info>
<title>Courier-&courier-version;</title>
<indexterm zone="courier">
<primary sortas="a-Courier">Courier MTA</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to Courier</title>
<para>The <application>Courier</application> package contains a Mail
Transport Agent (MTA). 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, IMAP, IMAP-SSL, POP3, and POP3-SSL.</para>
<bridgehead renderas="sect3">Package Information</bridgehead>
<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>
<bridgehead renderas="sect3">Courier Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required"><xref linkend="gdbm"/></para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional"><xref linkend="mysql"/> or <xref linkend="postgresql"/>,
<xref linkend="linux-pam"/>,
<xref linkend="openssl"/>,
<xref linkend="gamin"/>,
<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>
</sect2>
<sect2 role="installation">
<title>Installation of Courier</title>
<note>
<para><application>Courier</application>'s tarball must be extracted
as an unprivileged user or the <command>configure</command> script will
fail.</para>
</note>
<para>Before you compile the program, you need to create the
<systemitem class="username">courier</systemitem> user and group
that is expected to be in place during installation.
As the <systemitem class="username">root</systemitem> user, add
the <systemitem class="username">courier</systemitem> user and
group with the following commands:</para>
<screen role="root"><userinput>groupadd -g 30 courier &amp;&amp;
useradd -c 'Courier Mail Server' -d /dev/null \
-g courier -s /bin/false -u 30 courier</userinput></screen>
<para>The install script also expects a <systemitem
class="username">bin</systemitem> user. If you already have a
user named <systemitem class="username">bin</systemitem>, this
step can be safely ignored. If necessary, create the user by
issuing the following command as the
<systemitem class="username">root</systemitem> user:</para>
<screen role="root"><userinput>useradd -c 'bin' -d /dev/null -g bin -u 1 bin</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 lock files.
<filename class="directory">/var/lock/subsys</filename> also must exist
for the master lock file for <application>Courier</application>. Issue
the following commands as the
<systemitem class="username">root</systemitem> user to create these
directories:</para>
<screen role="root"><userinput>install -v -d /var/run/courier -o courier -g courier -m755 &amp;&amp;
install -v -d /var/lock/subsys -o root -g root -m755</userinput></screen>
<para>Build <application>Courier</application> as an unprivileged user
with the following commands:</para>
<screen><userinput>./configure --prefix=/usr --libexecdir=/usr/lib/courier \
--datadir=/usr/share/courier --sysconfdir=/etc/courier \
--localstatedir=/var/lib/courier --with-piddir=/var/run/courier \
--with-paranoid-smtpext --disable-autorenamesent \
--enable-workarounds-for-imap-client-bugs --with-db=gdbm &amp;&amp;
make</userinput></screen>
<para>Once again, become the <systemitem class="username">root</systemitem>
user and install <application>Courier</application> with the following
commands:</para>
<screen role="root"><userinput>make install &amp;&amp;
make install-configure</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para><parameter>--libexecdir=/usr/lib/courier</parameter>: Specifies
the directory which contains programs and libraries that should not 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
PID files are stored when
<application>Courier</application> is active.</para>
<para><parameter>--with-paranoid-smtpext</parameter>: Be paranoid when
negotiating Courier-specific ESMTP extensions with remote servers.
The <application>Courier</application> mail server defines and implements
certain experimental ESMTP 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</application>'s ESMTP server will also advertise a
dummy ESMTP capability called XCOURIEREXTENSIONS, and will not recognize
any Courier-specific extensions unless the remote mail server also
advertises this dummy ESMTP capability.</para>
<para><parameter>--disable-autorenamesent</parameter>: Do not rename the
Sent folder every month. This option can also be controlled by the
<envar>SQWEBMAIL_AUTORENAMESENT</envar> environment variable.</para>
<para><parameter>--enable-workarounds-for-imap-client-bugs</parameter>:
There are several confirmed bugs in some IMAP clients that do not properly
implement the IMAP4rev1 protocol. This option enables some workarounds for
those buggy IMAP 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 <command>configure</command>
with this option and recompile.</para>
<para><parameter>--with-db=gdbm</parameter>:
<application>Courier</application> requires either the
<application>GDBM</application> or the <application>DB</application>
database library. <application>GDBM</application> is used if both are
present. This option forces the selection of
<application>GDBM</application> as <application>Courier</application>
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><option>--with-ispell=/usr/bin/aspell</option>:
<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><option>--enable-mimetypes=<replaceable>[location of mime.types
file]</replaceable></option>: Use this switch if you receive an error
saying that the <filename>mime.types</filename> file could not be
found.</para>
</sect2>
<sect2 role="configuration">
<title>Configuring Courier</title>
<sect3 id="courier-config">
<title>Configuration Files</title>
<para><filename>/etc/courier/*</filename></para>
<indexterm zone="courier courier-config">
<primary sortas="e-etc-courier-star">/etc/courier/*</primary>
</indexterm>
</sect3>
<sect3>
<title>Configuration Information</title>
<para>While still as <systemitem class="username">root</systemitem>,
you will need to create the following files with the contents
specified.</para>
<para><filename>/etc/courier/defaultdomain</filename></para>
<screen role="root"><userinput>cat &gt; /etc/courier/defaultdomain &lt;&lt; "EOF"
<literal><replaceable>[yourdomain]</replaceable></literal>
EOF</userinput></screen>
<para><filename>/etc/courier/me</filename></para>
<screen role="root"><userinput>cat &gt; /etc/courier/me &lt;&lt; "EOF"
<literal><replaceable>[servername.yourdomain]</replaceable></literal>
EOF</userinput></screen>
<para><filename>/etc/courier/locals</filename></para>
<screen role="root"><userinput>cat &gt; /etc/courier/locals &lt;&lt; "EOF"
<literal>localhost
<replaceable>[yourdomain]</replaceable></literal>
EOF</userinput></screen>
<para><filename>/etc/courier/esmtpacceptmailfor.dir/system</filename></para>
<screen role="root"><userinput>cat &gt; /etc/courier/esmtpacceptmailfor.dir/system &lt;&lt; "EOF"
<literal>localhost
<replaceable>[yourdomain]</replaceable></literal>
EOF</userinput></screen>
<para>You will also need to edit the
<filename>/etc/courier/aliases/system</filename> file and change the
following entry.</para>
<screen><literal>postmaster: <replaceable>[your administrator email]</replaceable></literal></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 role="root"><userinput>touch /etc/courier/hosteddomains</userinput></screen>
<para>After the above steps are completed you will need to run the
following commands:</para>
<screen role="root"><userinput>makesmtpaccess &amp;&amp;
makehosteddomains &amp;&amp;
makealiases</userinput></screen>
<para>For each user, you will need to create a
<filename class="directory">Maildir</filename> directory:</para>
<screen role="root"><userinput>cd /home/<replaceable>[username]</replaceable> &amp;&amp;
maildirmake Maildir &amp;&amp;
chown <replaceable>[username]</replaceable>.<replaceable>[username]</replaceable> Maildir -R</userinput></screen>
<para>If you wish to use SSL with <application>Courier</application>,
you should obtain certificates and store them in
<filename class='directory'>/usr/share/courier</filename>. You can
optionally create self-signed, test certificates with the following
commands:</para>
<screen role="root"><userinput>mkesmtpdcert &amp;&amp;
mkimapdcert &amp;&amp;
mkpop3dcert</userinput></screen>
<para>All of <application>Courier</application>'s configuration files reside
in the directory <filename class="directory">/etc/courier/</filename>. For
each service SMTP, POP3 and IMAP, you will have a standard config file, and
an SSL 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 SMTP with SSL, 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 LDAP, an LDAP configuration file should be
created:</para>
<screen role="root"><userinput>echo "LDAPALIASDSTART=YES" > /etc/courier/ldapaliasd</userinput></screen>
<para>Similarly, if you wish to use webmail, you should create the webmail
configuration file:</para>
<screen role="root"><userinput>echo "WEBMAILDSTART=YES" > /etc/courier/webmaild</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 role="root"><userinput>cp -v -a /usr/lib/courier/courier/webmail/webmail /srv/www/cgi-bin</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
<option>--enable-imageurl=<replaceable>[URL]</replaceable></option>.</para>
<screen role="root"><userinput>cp -v -a /usr/share/courier/sqwebmail/images /srv/www/htdocs/webmail</userinput></screen>
<para>If you wish to utilize 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 role="root"><userinput>cp -v -a /usr/lib/courier/courier/webmail/webadmin /srv/www/cgi-bin</userinput></screen>
<para>You also need to put the password into the file
<filename>/etc/courier/webadmin/password</filename>:</para>
<screen role="root"><userinput>cat &gt; /etc/courier/webadmin/password &lt;&lt; "EOF"
<literal><replaceable>[password]</replaceable></literal>
EOF</userinput></screen>
<para>If you are not using SSL 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 role="root"><userinput>touch /etc/courier/webadmin/unsecureok</userinput></screen>
<para>If you use <application>Linux-PAM</application> on your system,
you will need to create the PAM configuration files:</para>
<screen role="root"><userinput>cat &gt; /etc/pam.d/esmtp &lt;&lt; "EOF"
<literal># 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</literal>
EOF
<literal>cat &gt; /etc/pam.d/pop3 &lt;&lt; "EOF"
# 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</literal>
EOF
cat &gt; /etc/pam.d/imap &lt;&lt; "EOF"
<literal># 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</literal>
EOF
cat &gt; /etc/pam.d/webmail &lt;&lt; "EOF"
<literal># 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</literal>
EOF</userinput></screen>
</sect3>
<sect3 id="courier-init">
<title>Boot Script</title>
<para>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="bootscripts"/> package.</para>
<indexterm zone="courier courier-init">
<primary sortas="f-courier-init">courier</primary>
</indexterm>
<screen role="root"><userinput>make install-courier</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><literal>MYSQL_SERVER localhost
MYSQL_USERNAME courier
MYSQL_PASSWORD <replaceable>[your choice]</replaceable>
MYSQL_SOCKET /var/run/mysql/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</literal></screen>
<para>Connect to <application>MySQL</application>:</para>
<screen role="root"><userinput>mysql -p</userinput></screen>
<para>Create the <filename>courier_mail</filename> database and setup
the users table:</para>
<screen role="root"><userinput>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))
);</userinput></screen>
<para>Grant all privileges to the <systemitem
class="username">courier</systemitem> user created earlier:</para>
<screen role="root"><userinput>GRANT ALL PRIVILEGES ON *.* TO courier@localhost \
IDENTIFIED BY '<replaceable>[password]</replaceable>' WITH GRANT OPTION;
QUIT</userinput></screen>
<para>Create a virtual mailman user and group:</para>
<screen role="root"><userinput>groupadd -g 35 vmailman &amp;&amp;
useradd -c 'Virtual Mailman' -g vmailman -m -k /dev/null -u 35 vmailman</userinput></screen>
<para>Create a mail directory for a new virtual user:</para>
<screen role="root"><userinput>cd /home/vmailman &amp;&amp;
mkdir -v <replaceable>[virtual_user]</replaceable> &amp;&amp;
cd <replaceable>[virtual_user]</replaceable> &amp;&amp;
maildirmake Maildir &amp;&amp;
chown -v vmailman.vmailman Maildir -R</userinput></screen>
<para>Now, connect to the <application>MySQL</application> database as
the <systemitem class="username">courier</systemitem> user:</para>
<screen role="root"><userinput>mysql -u courier -p</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>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</userinput></screen>
<para>For example:</para>
<screen><userinput>INSERT INTO users VALUES (
'blfsuser@linuxfromscratch.org',
'',
'password',
'BLFS User',
9000,
9000,
'/home/vmailman/blfsuser',
''
);</userinput></screen>
</sect3>
<!-- End of Virtual user setup -->
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</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, and webmaild</seg>
<seg>None</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"?>
<?dbhtml list-presentation="table"?>
<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>
POP3 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 POP3 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 SSL/TLS.</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 MSA 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>-IMAP 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 MIME-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>-IMAP 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>/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 MIME-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 ESMTP 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 ESMTP server access files from the
<filename class="directory">/etc/courier/smtpaccess</filename>
directory. This esmtp list is for the MSA 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">/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 MIME-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 SMTP 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 IMAP 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 POP3 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 POP3 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 POP3 over SSL 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 MIME 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 IP 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>/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>