X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/21b172df101c2c52faf0cc56a502395451975be9..f2259efecaf2978bc2baf9b7d9c012e3d01daea0:/doc/doc-docbook/spec.xfpt diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt index ffb34e882..6ff06f3a4 100644 --- a/doc/doc-docbook/spec.xfpt +++ b/doc/doc-docbook/spec.xfpt @@ -972,7 +972,7 @@ User filters are run as part of the routing process, described below. .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 @@ -7349,6 +7349,11 @@ dot-separated components; a key such as &`*fict.example`& 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. + @@ -19176,12 +19181,25 @@ This applies to all of the SRV, MX, AAAA, A lookup sequence. .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 &<>& 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 @@ -19545,7 +19563,7 @@ example: 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 @@ -29675,10 +29693,10 @@ A HUP signal is sufficient for this. 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. @@ -29848,10 +29866,10 @@ A HUP signal is sufficient for this. 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.