X-Git-Url: https://git.exim.org/users/jgh/exim.git/blobdiff_plain/72c9e342b1a4a410efc165a38281da2f5b69ad90..e45a1c3738f3cec60acf36ae268f8cbf35a2ce7d:/doc/doc-docbook/spec.xfpt diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt index ece837d03..345effd0e 100644 --- a/doc/doc-docbook/spec.xfpt +++ b/doc/doc-docbook/spec.xfpt @@ -10171,6 +10171,14 @@ number of larger units and output in Exim's normal time format, for example, .cindex "expansion" "case forcing" .cindex "&%uc%& expansion item" This forces the letters in the string into upper-case. + +.vitem &*${utf8clean:*&<&'string'&>&*}*& +.cindex "correction of invalid utf-8 sequences in strings" +.cindex "utf-8" "utf-8 sequences" +.cindex "incorrect utf-8" +.cindex "expansion" "utf-8 forcing" +.cindex "&%utf8clean%& expansion item" +This replaces any invalid utf-8 sequence in the string by the character &`?`&. .endlist @@ -27983,6 +27991,23 @@ This condition checks whether the sending host (the client) is authorized to send email. Details of how this works are given in section &<>&. +.new +.vitem &*verify&~=&~header_names_ascii*& +.cindex "&%verify%& ACL condition" +.cindex "&ACL;" "verifying header names only ASCII" +.cindex "header lines" "verifying header names only ASCII" +.cindex "verifying" "header names only ASCII" +This condition is relevant only in an ACL that is run after a message has been +received, that is, in an ACL specified by &%acl_smtp_data%& or +&%acl_not_smtp%&. It checks all header names (not the content) to make sure +there are no non-ASCII characters, also excluding control characters. The +allowable characters are decimal ASCII values 33 through 126. + +Exim itself will handle headers with non-ASCII characters, but it can cause +problems for downstream applications, so this option will allow their +detection and rejection in the DATA ACL's. +.wen + .vitem &*verify&~=&~header_sender/*&<&'options'&> .cindex "&%verify%& ACL condition" .cindex "&ACL;" "verifying sender in the header" @@ -28594,6 +28619,13 @@ deny condition = ${if isip4{$sender_host_address}} dnslists = some.list.example .endd +If an explicit key is being used for a DNS lookup and it may be an IPv6 +address you should specify alternate list separators for both the outer +(DNS list name) list and inner (lookup keys) list: +.code + dnslists = <; dnsbl.example.com/<|$acl_m_addrslist +.endd + .section "Rate limiting incoming messages" "SECTratelimiting" .cindex "rate limiting" "client sending" .cindex "limiting client sending rates" @@ -34024,6 +34056,7 @@ the following table: &`R `& on &`<=`& lines: reference for local bounce &` `& on &`=>`& &`**`& and &`==`& lines: router name &`S `& size of message +&`SNI `& server name indication from TLS client hello &`ST `& shadow transport name &`T `& on &`<=`& lines: message subject (topic) &` `& on &`=>`& &`**`& and &`==`& lines: transport name @@ -34333,7 +34366,8 @@ The message that is written is &"spool file is locked"&. .next .cindex "log" "smtp confirmation" .cindex "SMTP" "logging confirmation" -&%smtp_confirmation%&: The response to the final &"."& in the SMTP dialogue for +.cindex "LMTP" "logging confirmation" +&%smtp_confirmation%&: The response to the final &"."& in the SMTP or LMTP dialogue for outgoing messages is added to delivery log lines in the form &`C=`&<&'text'&>. A number of MTAs (including Exim) return an identifying string in this response.