This chapter gives you a quick introduction to setting up Exim and an overview
of its functionality. Although Exim is largely compatible with
sendmail in its behavior, its configuration files are
completely different.
The main configuration file is usually called
/etc/exim.conf or /etc/exim/config
in most Linux distributions, or /usr/lib/exim/config in
older configurations. You can find out where the configuration file is by
running the command:
$ exim -bP configure_file |
You may have to edit the configuration file to reflect values specific to your
site. In most common configurations there isn't a great deal to change, and a
working configuration should rarely have to be modified.
By default, Exim processes and delivers all incoming mail immediately. If you
have relatively high traffic, you may instead have Exim collect all messages
in the so-called queue, and process them at regular
intervals only.
When handling mail within a TCP/IP network, Exim is frequently run in daemon
mode: at system boot time, it is invoked from
/etc/init.d/exim[1]
and puts itself in the background, where it waits for incoming TCP connections
on the SMTP port (usually port 25). This is beneficial whenever you expect to
have a significant amount of traffic because Exim doesn't have to start up
for every incoming connection. Alternatively, inetd could
manage the SMTP port and have it spawn Exim whenever there is a connection
on this port. This configuration might be useful when you have limited
memory and low mail traffic volumes.
Exim has a complicated set of command-line options, including many
that match those of sendmail. Instead of trying to put together
exactly the right options for your needs, you can implement the most
common types of operation by invoking traditional commands like
rmail or rsmtp. These are
symbolic links to Exim (or if they're not, you can easily link
them to it). When you run one of the commands, Exim checks the
name you used to invoke it and sets the proper options itself.
There are two links to Exim that you should have under all circumstances:
/usr/bin/rmail and /usr/sbin/sendmail.[2]
When you compose and send a mail message with a user agent like
elm, the message is piped to sendmail
or rmail for delivery, which is why both
/usr/sbin/sendmail and /usr/bin/rmail
should point to Exim. The list of recipients for the message is passed to Exim
on the command line.[3]
The same happens with mail coming in via UUCP. You can set up the required
pathnames to point to Exim by typing the following at a shell prompt:
$ ln -s /usr/sbin/exim /usr/bin/rmail
$ ln -s /usr/sbin/exim /usr/sbin/sendmail |
If you want to dig further into the details of configuring Exim, you should
consult the full Exim specification. If this isn't included in your favorite
Linux distribution, you can get it from the source to Exim, or read it online
from Exim's web site at
https://www.exim.org.