`aliasfile': This director handles local-part expansion via a traditional alias
file. The name of the file is obtained by string expansion, and may therefore
depend on the local-part or the domain. Generated pipe and file addresses can be
(independently) locked out.
The `aliasfile' director can also be used to test a list of local parts and
direct any messages for them to a specific transport. In this case the data
associated with the local part in the file is not used for address expansion,
but is available for other purposes. For example, files containing records of
the form
foo: uid=1234 gid=5678 mailbox=/home_1/foo/inbox
could be used on a
Exim Specification - 11. Main configuration
Go to the first, previous, next, last section, table of contents.
The first part of the run time configuration file contains the main
configuration settings. Each setting occupies one line of the file, possibly
continued by a terminating backslash. If any setting is preceded by the word
`hide', the -bP option displays its value to admin users only (see section
7.3).
All macro definitions must be in this part of the file -- they
differ from options settings by starting with an upper-case letter (see section
7.2).
The available options are listed in alphabetical order below, along with their
types and default values.
Type: boolean
Default: false
This option causes Exim to send 8BITMIME in its response to an SMTP
EHLO command, and to accept the BODY= parameter on MAIL
commands. However, though Exim is 8-bit clean, it is not a protocol converter,
and it takes no steps to do anything special with messages received by this
route. Consequently, this option is turned off by default.
Type: time
Default: 0s
This sets the timeout for accepting a non-SMTP message, that is, the maximum
time that Exim waits when reading a message on the standard input. If the
value is zero, it will wait for ever. This setting is overridden by the -or
command option.
The timeout for incoming SMTP messages is controlled by
smtp_receive_timeout.
Type: string list
Default: unset
If the current group or any of the supplementary groups of the caller is in
this list, the caller has admin privileges. If all your system programmers are
in a specific group, for example, you can give them all Exim admin privileges
by putting that group in admin_groups.
However, this does not permit them to read Exim's spool files (whose group
owner is the Exim gid). To permit this, you have to add individuals to the Exim
group.
Type: boolean
Default: false
It appears that more and more DNS zones are breaking the rules and putting
IP addresses on the right hand side of MX records. Exim follows the rules and
rejects this, giving an error message that explains the mis-configuration.
However, some other MTAs support this practice, so to avoid `Why can't Exim do
this?' complaints, allow_mx_to_ip exists, in order to enable this
heinous activity. It is not recommended, except when you have no other choice.
Type: boolean
Default: false
Exim adds a To: header to messages whose recipients are given on the command
line when there is no To:, Cc:, or Bcc: in the message. In other cases of
missing recipient headers, it just adds an empty Bcc: header to make the
message conform with RFC 822. Setting always_bcc causes it to add an empty
Bcc: in all cases. This can be helpful in conjunction with mailing list
software that passes recipient addresses on the command line.
Type: boolean
Default: true
This option is available only when Exim is compiled with authentication
support. Normally, if any server authentication mechanisms are configured, Exim
advertises them in response to any EHLO command. However, if
auth_always_advertise is set false, Exim
advertises availability of the AUTH command only if the calling host is in
auth_hosts, or if it is in host_auth_accept_relay and not in
host_accept_relay. In other words, it advertises only when the host is
required always to authenticate or to authenticate in order to relay.
Otherwise, Exim does not advertise AUTH, though it is always prepared to
accept it. Certain mail clients (for example, Netscape) require the user to
provide a name and password for authentication if AUTH is advertised, even
though it may not be needed (the host may be in host_accept_relay).
Unsetting auth_always_advertise makes these clients more friendly in these
circumstances, while still allowing you to use combinations such as
host_auth_accept_relay = *
host_accept_relay = 10.9.8.0/24
without needing to fill up host_auth_accept_relay with exceptions.
Type: host list
Default: unset
Any hosts in this list that connect to an Exim server as clients are required
to authenticate themselves using the SMTP AUTH command before any commands
other than HELO, EHLO, HELP, AUTH, NOOP, RSET, or
QUIT are accepted. See chapter 35 for details of SMTP
authentication.
Type: host list
Default: unset
Any hosts in this list must start an encrypted TLS session before issuing an
SMTP AUTH command, but it does not of itself require them to authenticate.
See chapter 38 for details of SMTP encryption.
Type: time
Default: 0s
If this option is set to a time greater than zero, a queue runner will try a
new delivery attempt on any frozen message if this much time has passed since
it was frozen. This may result in the message being re-frozen if nothing has
changed since the last attempt. It is a way of saying `keep on trying, even
though there are big problems'. See also timeout_frozen_after,
ignore_errmsg_errors, and ignore_errmsg_errors_after.
Type: string
Default: unset
This option supplies the name of a command that is run when Exim is called with
the -bi option (see chapter 5). The string value is just the
command name, it is not a complete command line. If an argument is required, it
must come from the -oA command line option.
Type: integer
Default: 0
See check_spool_space below.
Type: integer
Default: 0
See check_spool_space below.
Type: integer
Default: 0
See check_spool_space below.
Type: integer
Default: 0
The four check_... options allow for checking of disc resources before a
message is accepted: check_spool_space and check_spool_inodes check the
spool partition if either value is greater than zero, for example:
check_spool_space = 10M
check_spool_inodes = 100
The spool partition is the one which contains the directory defined by
SPOOL_DIRECTORY in `Local/Makefile'.
check_log_space and check_log_inodes check the partition
in which log files are written if either is greater than zero. These should be
set only if log_file_path and spool_directory refer to different
partitions.
If there is less space or fewer inodes than requested, Exim refuses to accept
incoming mail. In the case of SMTP input this is done by giving a 452 temporary
error response to the MAIL command. If ESMTP is in use and there was a
SIZE parameter on the MAIL command, its value is added to the
check_spool_space value, and the check is performed even if
check_spool_space is zero,
unless no_smtp_check_spool_space is set.
For non-SMTP input and for batched SMTP input, the test is done at start-up; on
failure a message is written to stderr and Exim exits with a non-zero code, as
it obviously cannot send an error message of any kind.
Type: boolean
Default: false
From version 3.10, this option is obsolete and does nothing. Formerly, it
caused source-routed mail addresses to be stripped down to their final
components. This now happens automatically, and cannot be suppressed.
Type: string
Default: unset
This option specifies the numerical port number or the service name equivalent
on which the daemon is to listen for incoming SMTP calls. It is overridden by
-oX on the command line. If this option is not set, the service name `smtp'
is used.
Type: string
Default: unset
This option is a synonym for daemon_smtp_port.
Type: integer
Default: 0
This option sets the debug level, thus enabling it to be set when calling Exim
from an MUA, but it is overridden by the use of -d on the command line.
Type: time list
Default: 24h
When a message is delayed, Exim sends a warning message to the sender at
intervals specified by this option. If it is set to a zero, no
warnings are sent. The data is a colon-separated list of times after which to
send warning messages. Up to 10 times may be given. If a message has been on
the queue for longer than the last time, the last interval between the times is
used to compute subsequent warning times. For example, with
delay_warning = 4h:8h:24h
the first message is sent after 4 hours, the second after 8 hours, and
subsequent ones every 16 hours thereafter. To stop warnings after a given time,
set a huge subsequent time.
Type: string, expanded
Default: see below
The string is expanded at the time a warning message might be sent. If all the
deferred addresses have the same domain, it is set in $domain during the
expansion. Otherwise $domain is empty. If the result of the expansion is a
forced failure, an empty string, or a string matching any of `0', `no' or
`false' (the comparison being done caselessly) then the warning message is not
sent. The default is
delay_warning_condition = \
${if match{$h_precedence:}{(?i)bulk|list|junk}{no}{yes}}
which suppresses the sending of warnings about messages that have `bulk',
`list' or `junk' in a Precedence: header. Note that the colon to terminate
the header name cannot be omitted, because brace characters may legally occur
in header names.
Type: fixed-point
Default: unset
When this option is set, no message deliveries are ever done if the system load
average is greater than its value, except for deliveries forced with the -M
option.
If deliver_queue_load_max is not set and
the load gets this high during a queue run, the run is abandoned.
There are some operating systems for which Exim cannot determine the load
average (see chapter 1); for these this option has no effect.
Type: fixed-point
Default: unset
If this option is set, its value is used to determine whether to
abandon a queue run, instead of the value of deliver_load_max.
Type: boolean
Default: true
Exim's transports have an option for adding a Delivery-date: header to a
message when it is delivered -- in exactly the same way as Return-path: is
handled. Delivery-date: records the actual time of delivery. Such headers
should not be present in incoming messages, and this option causes them to be
removed, to avoid any problems that might occur when a delivered message is
subsequently sent on to some other recipient.
Type: domain list
Default: unset
DNS lookups give a `try again' response for the DNS error `non-Authoritive host
found or SERVERFAIL'. This can cause Exim to keep trying to deliver a
message, or to give repeated temporary errors to incoming mail. Sometimes the
effect is caused by a badly set up nameserver and may persist for a long time.
If a domain which exhibits this problem matches anything in
dns_again_means_nonexist then it is treated as if it did not
exist. This option should be used with care.
Type: boolean
Default: true
This option causes Exim to check domain names for illegal characters before
handing them to the DNS resolver, because some resolvers give temporary errors
for bad names. If a domain name contains any illegal characters, a `not found'
result is forced.
The check is done by matching the domain name against the regular expression
specified by the dns_check_names_pattern option.
Type: string
Default: see below
This option defines the regular expression that is used when the
dns_check_names option is set. The default value is
dns_check_names_pattern = \
(?i)^(?>(?(1)\.|())[^\W_](?>[a-z0-9-]*[^\W_])?)+$
which permits only letters, digits, and hyphens in components, but they may not
start or end with a hyphen.
Type: time
Default: 0s
The options dns_retrans and dns_retry can be used to set the
retransmission and retry parameters for DNS lookups. Values of zero (the
defaults) leave the system default settings unchanged. The first value is the
time between retries, and the second is the number of retries. It isn't
totally clear exactly how these settings affect the total time a DNS lookup may
take. I haven't found any documentation about timeouts on DNS lookups; these
parameter values are available in the external resolver interface structure,
but nowhere does it seem to describe how they are used or what you might want
to set in them.
Type: boolean
Default: false
When Exim is compiled with IPv6 support, it looks for IPv6 address records
(AAAA and A6) as well as IPv4 address records when trying to find IP addresses
for hosts. However, if dns_ipv4_lookup is set, it disables DNS lookups for
AAAA and A6 records. This is a fudge to help with name servers that give big
delays or otherwise do not work for these new record types. If Exim is handed
either of these record types as part of an MX lookup (for example), it still
handles them, and may as a result make outgoing IPv6 calls. All this option
does is to make it look only for IPv4-style A records when it needs to find an
IP address for a host name. In due course, when the world's name servers have
all been upgraded, there should be no need for this option.
Type: integer
Default: 0
See dns_retrans above.
Type: boolean
Default: true
Exim's transports have an option for adding an
Envelope-to: header to a message when it is delivered -- in exactly the same
way as Return-path: is handled. Envelope-to: records the original recipient
address in the envelope that caused the delivery. Such headers should not be
present in incoming messages, and this option causes them to be removed, to
avoid any problems that might occur when a delivered message is subsequently
sent on to some other recipient.
Type: string
Default: unset
If errmsg_text is set, its contents are included in the default error
message immediately after `This message was created automatically by mail
delivery software.' It is not used if errmsg_file is set.
Type: string
Default: unset
This option defines a template file containing paragraphs of text to be used
for constructing the message which is sent by Exim in the case of a
delivery failure. Details of the file's contents are given in chapter
39. See also warnmsg_file.
Type: string
Default: "postmaster"
The mail address to which Exim will send certain error reports. As the default
is specified without a domain, it will be sent to the domain specified by the
qualify_recipient option. If this address is specified with a domain, it
must be a fully qualified domain.
There are actually only a few situations where this address is used:
-
When freeze_tell_mailmaster is set, and a message that is not a failing,
locally generated bounce message is frozen. However, if the errors_address
is one of the recipients of the frozen message, nothing is sent, in order to
avoid potential loops.
-
Delivery failed, and there is no other address to which a bounce message can be
sent, except for bounce messages that are timing out (they are just discarded).
-
-Mg was used to cancel delivery, and there is no other address to which to
send a message.
Type: string list, expanded
Default: unset
Setting this option causes Exim to send bcc copies of delivery failure reports
that it generates
to other addresses. The value is a colon-separated list of items; each item
consists of a pattern and an address list, separated by white space. If the
pattern matches the recipient of the delivery error report, the message is
copied to the addresses on the list. The items are scanned in order, and once a
matching one is found, no further items are examined. For example:
errors_copy = spqr@mydomain postmaster@mydomain :\
rqps@mydomain mailmaster@mydomain,\
postmaster@mydomain
Each pattern can be a single regular expression, indicated by starting it with
a circumflex; alternatively, either portion (local part, domain) can
start with an asterisk, or the domain can be in any format that is acceptable
as an item in a domain list, including a file lookup. A regular expression is
matched against the entire (fully qualified) recipient; non-regular expressions
must contain both a local part and domain, separated by @.
The address list is a string which is expanded, and must end up as a
comma-separated list of addresses. It is used to construct a Bcc: header which
is added to the error message. The expansion variables $local_part and
$domain are set from the original recipient of the error message, and if
there was any wildcard matching, the expansion variables $0, $1, etc. are
set in the normal way.
Type: string
Default: unset
Exim's delivery error messages contain the header
From: Mail Delivery System <Mailer-Daemon@${qualify_domain}>
(where string expansion notation is used to show a va