would relax host matching rules to a broader network range.
+A lookup expansion is also available. It takes an email
+address as the key and an IP address as the database:
+
+ $lookup (username@domain} spf {ip.ip.ip.ip}}
+
+The lookup will return the same result strings as they can appear in
+$spf_result (pass,fail,softfail,neutral,none,err_perm,err_temp).
+Currently, only IPv4 addresses are supported.
+
+
+
SRS (Sender Rewriting Scheme) Support
--------------------------------------------------------------
DCC Support
--------------------------------------------------------------
+Distributed Checksum Clearinghouse; http://www.rhyolite.com/dcc/
*) Building exim
msg:complete after main per message
msg:delivery after transport per recipient
+ msg:rcpt:host:defer after transport per recipient per host
+ msg:rcpt:defer after transport per recipient
msg:host:defer after transport per attempt
msg:fail:delivery after main per recipient
msg:fail:internal after main per recipient
smtp:connect after transport per connection
The expansion is called for all event types, and should use the $event_name
-value to decide when to act. The variable data is a colon-separated
-list, describing an event tree.
+variable to decide when to act. The value of the variable is a colon-separated
+list, defining a position in the tree of possible events; it may be used as
+a list or just matched on as a whole. There will be no whitespace.
+
+New event types may be added in the future.
+
There is an auxilary variable, $event_data, for which the
content is event_dependent:
msg:delivery smtp confirmation mssage
+ msg:rcpt:host:defer error string
+ msg:rcpt:defer error string
msg:host:defer error string
tls:cert verification chain depth
smtp:connect smtp banner
-The msg:host:defer event populates one extra variable, $event_defer_errno.
+The :defer events populate one extra variable, $event_defer_errno.
The following variables are likely to be useful depending on the event type:
The string is expanded when each of the supported events occur
and any side-effects of the expansion will happen.
-Note that for complex operations an ACL expansion can be used.
+
+Note that for complex operations an ACL expansion can be used,
+however due to the multiple contexts the Exim operates in
+a) variables set in events raised from transports will not
+ be visible outside that transport call.
+b) acl_m variables in a server context are lost on a new connection,
+ and after helo/ehlo/mail/starttls/rset commands
+Using an ACL expansion with the logwrite modifier can be a
+useful way of writing to the main log.
+
The expansion of the event_action option should normally
Known issues:
- the tls:cert event is only called for the cert chain elements
received over the wire, with GnuTLS. OpenSSL gives the entire
- chain including thse loaded locally.
+ chain including those loaded locally.
Redis Lookup
- "pass" sets the authentication password. Default is empty.
- "port" sets the tcp port number for the proxy. Default is 1080.
- "tmo" sets a connection timeout in seconds for this proxy. Default is 5.
+- "pri" specifies a priority for the server within the list, higher
+ values being tried first. The default priority is 1.
+- "weight" specifies a selection bias. Within a priority set servers
+ are queried in a random fashion, weighted by this value. The default
+ value for selection bias is 1.
-Proxies from the list are tried in order until
-one responds. The timeout for the overall connection
-applies to the set of proxied attempts.
+Proxies from the list are tried according to their priority
+and weight settings until one responds. The timeout for the
+overall connection applies to the set of proxied attempts.
If events are used, the remote IP/port during a
tcp:connect event will be that of the proxy.
-SMTPUTF8
+INTERNATIONAL
------------------------------------------------------------
+SMTPUTF8
Internationalised mail name handling.
RFCs 6530, 6533, 5890
Compile with EXPERIMENTAL_INTERNATIONAL and libidn.
-Main config option smtputf8_advertise_hosts, default '*',
+New main config option smtputf8_advertise_hosts, default '*',
a host list. If this matches the sending host and
accept_8bitmime is true (the default) then the ESMTP option
SMTPUTF8 will be advertised.
the expansion variable $message_smtputf8 will have value TRUE.
The option allow_utf8_domains is set to true for this
-message, but all DNS lookups are converted to a-label form.
+message. All DNS lookups are converted to a-label form
+whatever the setting of allow_utf8_domains.
+
+Both localparts and domain are maintained as the original
+utf8 form internally; any matching or regex use will
+require appropriate care. Filenames created, eg. by
+the appendfile transport, will have utf8 name.
+
+Helo names sent by the smtp transport will have any utf8
+components expanded to a-label form.
+
+Any certificate name checks will be done using the a-label
+form of the name.
Log lines and Received-by: header lines will aquire a "utf8"
prefix on the protocol element, eg. utf8esmtp.
-Expansion operators:
+New expansion operators:
${utf8_domain_to_alabel:str}
${utf8_domain_from_alabel:str}
${utf8_localpart_to_alabel:str}
${utf8_localpart_from_alabel:str}
+New "control = utf8_downconvert" ACL modifier,
+sets a flag requiring that addresses are converted to
+a-label form before smtp delivery, for use in a
+Message Submission Agent context. Can also be
+phrased as "control = utf8_downconvert/1" and is
+mandatory. The flag defaults to zero and can be cleared
+by "control = utf8_downconvert/0". The value "-1"
+may also be used, to use a-label for only if the
+destination host does not support SMTPUTF8.
+
+If mua_wrapper is set, the utf8_downconvert control
+defaults to -1 (convert if needed).
+
+
+There is no explicit support for VRFY and EXPN.
+Configurations supporting these should inspect
+$smtp_command_argument for an SMTPUTF8 argument.
+
+There is no support for LMTP on Unix sockets.
+Using the "lmtp" protocol option on an smtp transport,
+for LMTP over TCP, should work as expected.
+
+Known issues:
+ - DSN unitext handling is not present
+ - no provision for converting logging from or to UTF-8
+
+----
+IMAP folder names
+
+New expansion operator:
+
+${imapfolder {<string>} {<sep>} {<specials>}}
+
+The string is converted from the charset specified by the headers charset
+command (in a filter file) or headers_charset global option, to the
+modified UTF-7 encoding specified by RFC 2060, with the following
+exception: All occurences of <sep> (which has to be a single character)
+are replaced with periods ("."), and all periods and slashes that aren't
+<sep> and are not in the <specials> string are BASE64 encoded.
+
+The third argument can be omitted, defaulting to an empty string.
+The second argument can be omitted, defaulting to "/".
+
+This is the encoding used by Courier for Maildir names on disk, and followed
+by many other IMAP servers.
+
+ Example 1: ${imapfolder {Foo/Bar}} yields "Foo.Bar".
+ Example 2: ${imapfolder {Foo/Bar}{.}{/}} yields "Foo&AC8-Bar".
+ Example 3: ${imapfolder {Räksmörgås}} yields "R&AOQ-ksm&APY-rg&AOU-s".
+
+Note that the source charset setting is vital, and also that characters
+must be representable in UTF-16.
+
+
+
+DSN extra information
+---------------------
+If compiled with EXPERIMENTAL_DSN_INFO extra information will be added
+to DSN fail messages ("bounces"), when available. The intent is to aid
+tracing of specific failing messages, when presented with a "bounce"
+complaint and needing to search logs.
+
+
+The remote MTA IP address, with port number if nonstandard.
+Example:
+ Remote-MTA: X-ip; [127.0.0.1]:587
+Rationale:
+ Several addresses may correspond to the (already available)
+ dns name for the remote MTA.
+
+The remote MTA connect-time greeting.
+Example:
+ X-Remote-MTA-smtp-greeting: X-str; 220 the.local.host.name ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+Rationale:
+ This string sometimes presents the remote MTA's idea of its
+ own name, and sometimes identifies the MTA software.
+
+The remote MTA response to HELO or EHLO.
+Example:
+ X-Remote-MTA-helo-response: X-str; 250-the.local.host.name Hello localhost [127.0.0.1]
+Limitations:
+ Only the first line of a multiline response is recorded.
+Rationale:
+ This string sometimes presents the remote MTA's view of
+ the peer IP connecting to it.
+
+The reporting MTA detailed diagnostic.
+Example:
+ X-Exim-Diagnostic: X-str; SMTP error from remote mail server after RCPT TO:<d3@myhost.test.ex>: 550 hard error
+Rationale:
+ This string somtimes give extra information over the
+ existing (already available) Diagnostic-Code field.
+
+
+Note that non-RFC-documented field names and data types are used.
+
+
+
--------------------------------------------------------------
End of file