<authorinitials>EM</authorinitials>
<revhistory><revision>
<revnumber>4.77</revnumber>
- <date>03 Oct 2011</date>
+ <date>10 Oct 2011</date>
<authorinitials>EM</authorinitials>
</revision></revhistory>
<copyright><year>2011</year><holder>University of Cambridge</holder></copyright>
chapter &<<CHAPfdlookup>>&. For example:
.code
hold_domains = mysql;select domain from holdlist \
- where domain = '$domain';
+ where domain = '${quote_mysql:$domain}';
.endd
In most cases, the data that is looked up is not used (so for an SQL query, for
example, it doesn't matter what field you select). Exim is interested only in
This condition turns a string holding a true or false representation into
a boolean state. It parses &"true"&, &"false"&, &"yes"& and &"no"&
(case-insensitively); also positive integer numbers map to true if non-zero,
-false if zero. Leading and trailing whitespace is ignored.
+false if zero.
+An empty string is treated as false.
+Leading and trailing whitespace is ignored;
+thus a string consisting only of whitespace is false.
All other string values will result in expansion failure.
When combined with ACL variables, this expansion condition will let you
.vitem &*match_ip&~{*&<&'string1'&>&*}{*&<&'string2'&>&*}*&
.cindex "&%match_ip%& expansion condition"
+.new
This condition matches an IP address to a list of IP address patterns. It must
be followed by two argument strings. The first (after expansion) must be an IP
-address or an empty string. The second (after expansion) is a restricted host
+address or an empty string. The second (not expanded) is a restricted host
list that can match only an IP address, not a host name. For example:
+.wen
.code
${if match_ip{$sender_host_address}{1.2.3.4:5.6.7.8}{...}{...}}
.endd
.endd
.endlist ilist
+.new
+Note that <&'string2'&> is not itself subject to string expansion, unless
+Exim was built with the EXPAND_LISTMATCH_RHS option.
+.wen
+
Consult section &<<SECThoslispatip>>& for further details of these patterns.
.vitem &*match_local_part&~{*&<&'string1'&>&*}{*&<&'string2'&>&*}*&
.cindex "binary zero" "in message body"
.vindex "&$body_zerocount$&"
When a message is being received or delivered, this variable contains the
-number of binary zero bytes in the message's body.
+number of binary zero bytes (ASCII NULs) in the message's body.
.vitem &$bounce_recipient$&
.vindex "&$bounce_recipient$&"
This option defines the &"random"& local part that can be used as part of
callout verification. The default value is
.code
-$primary_host_name-$tod_epoch-testing
+$primary_hostname-$tod_epoch-testing
.endd
See section &<<CALLaddparcall>>& for details of how this value is used.
really random &-- it is defined by the expansion of the option
&%callout_random_local_part%&, which defaults to
.code
-$primary_host_name-$tod_epoch-testing
+$primary_hostname-$tod_epoch-testing
.endd
The idea here is to try to determine whether the remote host accepts all local
parts without checking. If it does, there is no point in doing callouts for
A colon-separated list of names of headers included in the signature.
.vitem &%$dkim_key_testing%&
"1" if the key record has the "testing" flag set, "0" if not.
-.vitem &%$dkim_key_nosubdomaining%&
+.vitem &%$nosubdomains%&
"1" if the key record forbids subdomaining, "0" otherwise.
.vitem &%$dkim_key_srvtype%&
Service type (tag s=) from the key record. Defaults to "*" if not specified