.cindex "Darwin"
.cindex "Cygwin"
.cindex "exim_msgdate"
-Every message handled by Exim is given a &'message id'& which is sixteen
+Every message handled by Exim is given a &'message id'& which is 23
characters long. It is divided into three parts, separated by hyphens, for
example &`16VDhn-000000001bo-D342`&. Each part is a sequence of letters and digits,
normally encoding numbers in base 62. However, in the Darwin operating
This option requests Exim to give up trying to deliver the listed messages,
including any that are frozen. However, if any of the messages are active,
their status is not altered. For non-bounce messages, a delivery error message
-is sent to the sender, containing the text &"cancelled by administrator"&.
+is sent to the sender.
Bounce messages are just discarded. This option can be used only by an admin
user.
in a database file is useless, because the asterisk in a partial matching
subject key is always followed by a dot.
+When the lookup is done from a string-expansion,
+the variables &$1$& and &$2$& contain the wild and non-wild parts of the key
+during the expansion of the replacement text.
+They return to their previous values at the end of the lookup item.
+
Consult section &<<SECThoslispatip>>& for further details of these patterns.
+The variable &$value$& will be set for a successful match and can be
+used in the success clause of an &%if%& expansion item using the condition.
+Any previous &$value$& is restored after the if.
+
.vitem &*match_local_part&~{*&<&'string1'&>&*}{*&<&'string2'&>&*}*&
.cindex "domain list" "in expansion condition"
.cindex "address list" "in expansion condition"
.cindex "router" "restricting to specific domains"
.vindex "&$domain_data$&"
If this option is set, the router is skipped unless the current domain matches
-the list. If the match is achieved by means of a file lookup, the data that the
-lookup returned for the domain is placed in &$domain_data$& for use in string
+the list.
+The data returned by the list check
+is placed in &$domain_data$& for use in string
expansions of the driver's private options and in the transport.
See section &<<SECTrouprecon>>& for
a list of the order in which preconditions are evaluated.
+A complex example, using a file like:
+.code
+alice@dom1
+bill@dom1
+maggie@dom1
+.endd
+and checking both domain and local_part
+.code
+domains = ${domain:${lookup {$local_part@$domain} lseach,ret=key {/path/to/accountsfile}}}
+local_parts = ${local_part:${lookup {$local_part@$domain} lseach,ret=key {/path/to/accountsfile}}}
+.endd
+
.option driver routers string unset
local_parts = dbm;/usr/local/specials/$domain_data
.endd
.vindex "&$local_part_data$&"
-If the match is achieved by a lookup, the data that the lookup returned
+the data returned by the list check
for the local part is placed in the variable &$local_part_data$& for use in
expansions of the router's private options or in the transport.
You might use this option, for
The value &"system"& results in no caching under GnuTLS.
The macro _HAVE_TLS_CA_CACHE will be defined if the suffix for "system"
-is acceptable in configurations for the Exim executavble.
+is acceptable in configurations for the Exim executable.
Caching of the system Certificate Authorities bundle can
-save siginificant time and processing on every TLS connection
+save significant time and processing on every TLS connection
accepted by Exim.
The value &"system"& results in no caching under GnuTLS.
The macro _HAVE_TLS_CA_CACHE will be defined if the suffix for "system"
-is acceptable in configurations for the Exim executavble.
+is acceptable in configurations for the Exim executable.
Caching of the system Certificate Authorities bundle can
-save siginificant time and processing on every TLS connection
+save significant time and processing on every TLS connection
initiated by Exim.
.endlist
-In addition, two ACL conditions are provided:
+In addition, two ACL conditions are provided, usable only in a DKIM ACL:
.vlist
.vitem &%dkim_signers%&
If this value is empty the the expansion result will be empty.
The third argument should be the recipient domain of the message when
it arrived at this system.
+All arguments are expanded before use.
+
+The result of the expansion is the replacement envelope-from (return path)
+to be used.
.endlist
.cindex SRS decoding
To decode an address use this expansion condition:
.vlist
.vitem &*inbound_srs&~{*&<&'local&~part'&>&*}{*&<&'secret'&>&*}*&
-The first argument should be the recipient local prt as is was received.
+The first argument should be the recipient local part as it was received.
The second argument is the site secret.
+Both arguments are expanded before use.
If the messages is not for an SRS-encoded recipient the condition will
-return false. If it is, the condition will return true and the variable
+return false.
+If it is, the condition will return true and the variable
&$srs_recipient$& will be set to the decoded (original) value.
+
+.new
+If the second argument is empty then the condition returns true if
+the first argument is in valid SRS formet, else false.
+The variable &$srs_recipient$& is not set for this case.
+.wen
.endlist
Example usage: