The default configuration file supplied with Exim as `src/configure.default' is sufficient for a single host with simple mail requirements. It contains comments about options you might want to set, but which it lets default, together with the settings described here.
There are three explicit options in this section:
never_users = root
This prevents Exim from ever running as root when performing a local delivery. Instead, it runs as `nobody'.
host_lookup_nets = 0.0.0.0/0
This specifies the sending IP networks for which a DNS reverse lookup is done, in order to get the host name from the IP address of an incoming message. The default setting matches all IP addresses. The host name appears in the log and in messages' `Received:' headers.
sender_host_reject_relay = *
This prevents all other hosts from using your host as a mail relay. This setting is here because there has been a lot of relay abuse on the Internet. If you want to provide relaying services, you will have to change this option, and/or set `relay_domains'. See chapter "Other policy controls on incoming mail" for more details.
As the `primary_hostname', `qualify_domain', and `local_domains' options are not specified, they will all take the name of the local host, as obtained by the `uname()' function, as their value.
Five local transports and one remote transport are defined. The first one is
local_delivery: driver = appendfile file = /var/mail/${local_part} delivery_date_add envelope_to_add return_path_add
which is set up to deliver to local mailboxes in a traditional `sticky bit' directory. Some installations prefer not to set the `sticky bit', but instead run the delivery under a specific group, with the directory being writeable by the group. Adding the following options achieves this:
group = mail mode = 0660
To deliver into files in users' home directories, a setting such as
file = /home/${local_part}/inbox
or
file = ${home}/inbox
should be substituted for the default `file' option. The three options ending in `_add' cause Exim to add three header lines to the message as it writes it to the mailbox. They can be removed if these headers are not required.
The second local transport is
address_pipe: driver = pipe return_output
This transport, whose name (`address_pipe') is conventional, is automatically used by Exim when a local part that is expanded via an alias or forward file causes delivery to a pipe. Any output from the pipe is returned to the sender of the message. The third local transport is
address_file: driver = appendfile delivery_date_add envelope_to_add return_path_add
This transport, whose name (`address_file') is conventional, is automatically used by Exim when a local part that is expanded via an alias or forward file causes delivery to a specified file (by generating a path name not ending in `/'). The fourth local transport is
address_directory: driver = appendfile no_from_hack prefix = "" suffix = "" delivery_date_add envelope_to_add return_path_add
This transport, whose name (`address_directory') is conventional, is automatically used by Exim when a local part that is expanded via an alias or forward file into a path name ending in `/', which causes delivery to a new file in the specified directory. In this case there is no need for the conventional message lines that separate multiple messages in a single file, and so the default `prefix' and `suffix' options are suppressed, as is the option that escapes lines beginning with `From'. The final local transport is
address_reply: driver = autoreply
This transport, whose name (`address_reply') is conventional, is automatically used by Exim when a local part that is expanded via a filter file causes an automatic reply to a message to be generated. The only remote transport is
remote_smtp: driver = smtp
This transport is used to do external deliveries over SMTP, with default options.
Three directors are specified for the default configuration. Note that the order of director definitions matters. The first director causes local parts to be checked against the system alias file, which is searched linearly:
system_aliases: driver = aliasfile file = /etc/aliases search_type = lsearch
The second director comes into play if a local part does not match a system alias:
userforward: driver = forwardfile file = .forward no_verify no_expn check_ancestor # filter
An attempt is made to look for a file called `.forward' in the home directory of a local user. However, this director is skipped when verifying addresses or running an SMTP EXPN command. The `check_ancestor' option prevents a `.forward' file from turning a login name back into a previously-handled alias name. The `filter' option is commented out in the default configuration. Thus `.forward' files are treated in the conventional manner, but filtering can be enabled by removing the # character. The final director is
localuser: driver = localuser transport = local_delivery
This checks that a local part is the login of a local user, and if so, directs the message to be delivered using the `local_delivery' transport.
Two routers are defined in the default configuration. The first is
lookuphost: driver = lookuphost transport = remote_smtp
and its default settings cause it to look up the domain in the DNS, in order to determine the host to which a message should be sent, using the `remote_smtp' transport. The second router is
literal: driver = ipliteral transport = remote_smtp
This handles `domains' that are actually RFC 822 domain literals, that is, IP addresses enclosed in square brackets.
A single retry rule is given in the default configuration:
* * F,2h,15m; G,16h,1h,1.5; F,4d,8h
This causes any temporarily failing address to be retried every 15 minutes for 2 hours, then at intervals starting at one hour and increasing by a factor of 1.5 until 16 hours have passed, then every 8 hours up to 4 days.
There are no rewriting rules in the default configuration file.
Go to the first, previous, next, last section, table of contents.