Regular expressions are available i
Exim 4.00 Specification chapter 11
Previous
Next
Contents
(Exim 4.00 Specification)
Many strings that are given in Exim's run time configuration are expanded
before use. Some of them are expanded every time they are used; others are
expanded only once.
When a string is being expanded it is copied verbatim from left to right except
when a dollar or backslash character is encountered. A dollar specifies the
start of a portion of the string which is interpreted and replaced as described
below in section 11.4 onwards.
An uninterpreted dollar can be included in an expanded string by putting a
backslash in front of it. A backslash can be used to prevent any special
character being treated specially in an expansion, including itself. If the
string appears in quotes in the configuration file, two backslashes are
required because the quotes themselves cause interpretation of backslashes when
the string is read in.
An entire portion of the string can specified as non-expandable by placing it
between two occurrences of \N. This is particularly useful for protecting
regular expressions, which often contain backslashes and dollar signs. For
example:
deny senders = \N^\d{8}[a-z]@some\.site\.example$\N
On encountering the first \N, the expander copies subsequent characters
without interpretation until it reaches the next \N or the end of the
string.
A backslash followed by one of the letters ``n'', ``r'', or ``t'' in an expanded
string is recognized as an escape sequence for the character newline, carriage
return, or tab, respectively. A backslash followed by up to three octal digits
is recognized as an octal encoding for a single character, and a backslash
followed by ``x'' and up to two hexadecimal digits is a hexadecimal encoding.
These escape sequences are also recognized in quoted strings when they are read
in. Their interpretation in expansions as well is useful for unquoted strings,
and for other cases such as looked-up strings that are then expanded.
Many expansions can be tested by calling Exim with the -be option. This takes
the command arguments, or lines from the standard input if there are no
arguments, runs them through the string expansion code, and writes the results
to the standard output. Variables based on configuration values are set up, but
since no message is being processed, variables such as $local_part have no
value. Nevertheless the -be option can be useful for checking out file and
database lookups, and the use of expansion operators such as substr and
hash.
Exim gives up its root privilege when it is called with the -be option, and
instead runs under the uid and gid it was called with, to prevent users from
using -be for reading files to which they normally do not have access.
The following items are recognized in expanded strings. White space may be used
between sub-items that are keywords or substrings enclosed in braces inside an
outer set of braces, to improve readability. Within braces, however, white
space is significant.
$<variable name> or ${
Exim 4.00 Specification chapter 13
Previous
Next
Contents
(Exim 4.00 Specification)
The first part of the run time configuration file contains three types of item:
Macro definitions: These lines start with an upper case letter. See section
6.4 for details of macro processing.
Named list definitions: These lines start with one of the words ``domainlist'',
``hostlist'', ``addresslist'', or ``localpartlist''. Their use is described in
section 10.5.
Main configuration settings: Each setting occupies one line of the file
(including possible continuations). If any setting is preceded by the word
``hide'', the -bP option displays its value to admin users only (see section
6.5).
This chapter lists all the main configuration options, along with their types
and default values, in alphabetical order.
accept_8bitmime
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.
acl_smtp_auth
Type: string, expanded
Default: unset
This option defines the ACL that is run when an SMTP AUTH command is
received. See chapter 37 for further details.
acl_smtp_data
Type: string, expanded
Default: unset
This option defines the ACL that is run after an SMTP DATA command has been
processed and the message itself has been received, but before the final
acknowledgement is sent. See chapter 37 for further details.
acl_smtp_etrn
Type: string, expanded
Default: unset
This option defines the ACL that is run when an SMTP ETRN command is
received. See chapter 37 for further details.
acl_smtp_expn
Type: string, expanded
Default: unset
This option defines the ACL that is run when an SMTP EXPN command is
received. See chapter 37 for further details.
acl_smtp_rcpt
Type: string, expanded
Default: unset
This option defines the ACL that is run when an SMTP RCPT command is
received. See chapter 37 for further details.
acl_smtp_vrfy
Type: string, expanded
Default: unset
This option defines the ACL that is run when an SMTP VRFY command is
received. See chapter 37 for further details.
admin_groups
Type: string
Default: unset
If the current group or any of the supplementary groups of the caller is in
this colon-separated 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.
allow_domain_literals
Type: boolean
Default: false
If this option is set, the RFC 2822 domain literal format is permitted in
email addresses. The option is not set by default, because the domain literal
format is not normally required these days, and few people know about it. It
has, however, been exploited by mail abusers.
allow_mx_to_ip
Type: boolean
Default: false
It appears that more and more DNS zone administrators are breaking the rules
and putting domain names that look like 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.
auth_advertise_hosts
Type: host list, expanded
Default: *
If any server authentication mechanisms are configured, Exim advertises them in
response to an EHLO command only if the calling host matches this list.
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 accept messages from hosts on its local LAN without
authentication, for example). The auth_advertise_hosts option can be used
to make these clients more friendly by excluding them from the set of hosts to
which Exim advertises AUTH.
auto_thaw
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 and
ignore_bounce_errors_after.
bi_command
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.
bounce_message_file
Type: string
Default: unset
This option defines a template file containing paragraphs of text to be used
for constructing bounce messages. Details of the file's contents are given in
chapter 40. See also warn_message_file.
bounce_message_text
Type: string
Default: unset
When this option is set, its contents are included in the default bounce
message immediately after ``This message was created automatically by mail
delivery software.'' It is not used if bounce_message_file is set.
bounce_return_message
Type: boolean
Default: true
If this option is set false, the original message is not included in bounce
messages generated by Exim. See also return_size_limit.
bounce_sender_authentication
Type: string
Default: unset
This option provides an authenticated sender address that is sent with any
bounce messages generated by Exim that are sent over an authenticated SMTP
connection. A typical setting might be:
bounce_sender_authentication = mailer-daemon@my.domain.example
which would cause bounce messages to be sent using the SMTP command:
MAIL FROM:<> AUTH=mailer-daemon@my.domain.example
The value of bounce_sender_authentication must always be a complete email
address.
check_log_inodes
Type: integer
Default: 0
See check_spool_space below.
check_log_space
Type: integer
Default: 0
See check_spool_space below.
check_spool_inodes
Type: integer
Default: 0
Se
Exim 4.00 Specification Concepts
Concepts
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
$header_
$value [2] [3]
*@
+caseful
+include_unknown
/dev/null
8-bit characters [2] [3]
8BITMIME
@ in a domain list
@ in a host list
@[] in a domain list
@[] in a host list
@mx_any
@mx_primary
@mx_secondary
A
abandoning mail [2]
accept router
ACL: condition processing
ACL: conditions, definition of
ACL: description
ACL: format
ACL: indirect
ACL: modifier processing
ACL: modifiers, definition of
ACL: nested
ACL: options for specifying
ACL: relay control
ACL: setting up for SMTP commands
ACL: specifying
ACL: unset
ACL: verbs, definition of
ACL: verifying header syntax
ACL: verifying HELO/EHLO
ACL: verifying host reverse lookup
ACL: verifying recipient
ACL: verifying sender [2]
adding drivers
additional groups [2]
address list: case forcing
address list: empty item
address list: in a rewriting pattern
address list: patterns
address rewriting
address: constructed
address: copying routing [2]
address: duplicated
address: qualification
address: rewriting [2]
address: sender
address: source-routed
address: testing [2]
address: verification
admin user [2] [3] [4] [5] [6] [7] [8]
admin user, definition of
alias file: backslash in
alias file: broken
alias file: building [2]
alias file: exception to default
alias file: in a redirect router
alias file: one-time expansion
alias file: ownership
alias file: per-domain default
alias for host
alternate configuration file
``and'' expansion condition
angle brackets, excess
appendfile transport
appending to a file
architecture type
asterisk after IP address
Athena
AUTH: ACL for
AUTH: advertising
AUTH: argument
AUTH: configuration [2]
AUTH: how it works
AUTH: in plaintext authenticator
AUTH: logging
AUTH: on bounce message
AUTH: on MAIL command [2] [3]
AUTH: testing
AUTH: with PAM
authentication: [2] [3]
authentication: ACL checking
authentication: advertising
authentication: bounce message
authentication: client
authentication: generic options
authentication: id
authentication: logging
authentication: sender [2] [3]
authentication: server
authentication: testing
authenticator name
auto_thaw
autoreply transport [2]
B
background delivery
backlog of connections
backslash in alias file
bang paths:
bang paths: rewriting
banner for SMTP
base62 [2] [3] [4]
batched SMTP input [2]
batched SMTP output [2]
Bcc: header [2]
Berkeley DB:
Berkeley DB: file format
BIN_DIRECTORY
bind IP address [2]
black hole
black list (DNS) [2] [3]
body of message: definition of
body of message: expansion variable [2]
body of message: line count
body of message: size
body of message: transporting
body of message: visible size
bounce message:
bounce message: copy to other address
bounce message: customizing [2]
bounce message: definition of
bounce message: discarding
bounce message: failure to deliver
bounce message: generating
bounce message: including original
bounce message: sender authentication
bounce message: size limit
broken alias or forward files
bug reports
build directory
building DBM files
building Exim
C
C header files
caching lookup data
callout timeout
callout verification
carriage return [2] [3] [4] [5] [6]
case forcing in address lists
case forcing in strings [2]
case of local parts [2] [3] [4]
cc compiler
Cc: header
cdb [2] [3]
certificate:
certificate: verifying [2]
character code
checking access
checking disc space [2]
CIDR notation [2]
cipher, logging [2]
command line options
common option syntax
compiler name
configuration file: alternate
configuration file: common option syntax
configuration file: editing
configuration file: errors
configuration file: format
configuration file: including other files
configuration file: macros
configuration file: ownership
configuration options
configuration: default
configuration: main
configuration: pre-building
configuration: retry
configuration: run time [2]
CONFIGURE_FILE [2] [3]
connection backlog
constructed address
control of incoming mail
copy of bounce message
copy of message (unseen option)
Courier
CR [2] [3] [4] [5] [6]
cram_md5 authenticator
creating directories
current directory
customizing: ACL condition
customizing: ACL failure message
customizing: batching condition
customizing: bounce message [2]
customizing: failure message
customizing: input scan using C function
customizing: pre-condition
customizing: Received: header
customizing: SMTP banner
customizing: warning message [2]
cycling logs [2]
Cyrus [2]
D
daemon [2] [3]
daemon, process id [2]
DATA: ACL for
database: lookup
database: maintenance
Date: header
DBM: building dbm files
DBM: libraries [2]
DBM: lookup [2]
debugging
default configuration
defaults for lookups
deferred delivery, forcing
delay_after_cutoff
delay_warning_condition
delayed delivery, logging
Delivery-date: header [2] [3]
delivery: by external agent
delivery: cancelling all
delivery: cancelling by address
delivery: deferral
delivery: failure [2]
delivery: failure, logging
delivery: failure, long-term
delivery: fake
delivery: first
delivery: forcing
delivery: forcing deferral
delivery: forcing failure [2]
delivery: from given sender
delivery: in detail
delivery: maximum number of
delivery: permanent failure
delivery: problems with
delivery: procmail
delivery: retry mechanism
delivery: sorting remote
delivery: temporary failure
delivery: to given domain
delivery: to single file
delivery: failure report see bounce message
delivery_date_remove
dialup see intermittently connected hosts
directories, multiple
directory creation [2] [3] [4]
disc space, checking [2]
discarded messages
discarding bounce message
DNS list: in ACL
DNS list: logging defer
DNS reverse lookup
DNS: as a lookup type [2]
DNS: reverse lookup [2]
dnsdb
dnslookup router
domain list patterns
domain literal [2]
domain: ACL checking
domain: definition of
domain: delivery to
domain: extraction
domain: in redirection, preserving
domain: virtual
domainless addresses
dot handling [2]
dots in local parts
driver configuration format
drivers, definition of
dsearch lookup
duplicate addresses
E
EACCES
editing configuration files
EHLO [2] [3] [4]
EHLO, verifying [2]
encrypted comparison
encryption: checking in an ACL
encryption: including support for
encryption: on SMTP connection [2]
ENOTDIR
envelope sender [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
envelope sender, rewriting
envelope, definition of
Envelope-to: header [2] [3] [4]
envelope_to_remove
environment for local transports
environment for pipe transport [2]
error messages:
error messages: copying
error reporting [2] [3] [4] [5]
errors: in configuration file
errors: in outgoing SMTP
errors: skipping bad syntax
errors_to
ETRN: ACL for
ETRN: argument
ETRN: command to be run
ETRN: logging
ETRN: processing
ETRN: serializing
ETRN: value of $domain
exec failure
exicyclog [2]
exigrep
Exim arguments, logging
exim monitor
exim_dbmbuild
exim_dumpdb