Go to the first, previous, next, last section, table of contents.


35 The default configuration file

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.

35.1 Main configuration settings

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.

35.2 Transport configuration settings

Five local transports and one remote transport are defined. The first one is


local_delivery:
  driver = appendfile
  file = /var/mail/${local_part}

which is set up to deliver to local mailboxes in a traditional `sticky bit' directory. To deliver into files in users' home directories, a configuration such as


local_delivery:
  driver = appendfile
  file = /home/${local_part}/inbox

should be substituted. An alternative setting for the `file' option is


  file = ${home}/inbox

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

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

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 separators that separate multiple messages in a single file. 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.

35.3 Director configuration settings

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

35.4 Router configuration settings

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.

35.5 Default retry rule

A single retry rule is given in the default configuration:


*    *   F,2h,15m; G,16h,2h,1.5; F,4d,8h

This causes any temporarily failing address to be retried every 15 minutes for 2 hours, then at intervals increasing by a factor of 1.5 until 16 hours have passed, then every 8 hours up to 4 days.

35.6 Rewriting configuration

There are no rewriting rules in the default configuration file.


Go to the first, previous, next, last section, table of contents.