X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/c4b4086235b1d5e21fcf1ad72a1b05813e15dcbd..4449d1067062efa0f3d88e801660e5aadbdeabb2:/doc/doc-docbook/spec.xfpt diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt index 2687f6048..194a8a5e9 100644 --- a/doc/doc-docbook/spec.xfpt +++ b/doc/doc-docbook/spec.xfpt @@ -54,7 +54,7 @@ .set drivernamemax "64" .macro copyyear -2020 +2021 .endmacro . ///////////////////////////////////////////////////////////////////////////// @@ -193,7 +193,7 @@ .copyyear - University of Cambridge + The Exim Maintainers .literal off @@ -7423,6 +7423,12 @@ lookups. However, because (apart from the daemon) Exim operates as a collection of independent, short-lived processes, this caching applies only within a single Exim process. There is no inter-process lookup caching facility. +.new +If an option &"cache=no_rd"& is used on the lookup then +the cache is only written to, cached data is not used for the operation +and a real lookup is done. +.wen + For single-key lookups, Exim keeps the relevant files open in case there is another lookup that needs them. In some types of configuration this can lead to many files being kept open for messages with many recipients. To avoid hitting @@ -12802,13 +12808,11 @@ option in the &(appendfile)& transport. The variable contains the inode number of the temporary file which is about to be renamed. It can be used to construct a unique name for the file. -.vitem &$interface_address$& +.vitem &$interface_address$& &&& + &$interface_port$& .vindex "&$interface_address$&" -This is an obsolete name for &$received_ip_address$&. - -.vitem &$interface_port$& .vindex "&$interface_port$&" -This is an obsolete name for &$received_port$&. +These are obsolete names for &$received_ip_address$& and &$received_port$&. .vitem &$item$& .vindex "&$item$&" @@ -12998,7 +13002,7 @@ when the ACL &%malware%& condition is true (see section &<>&). This variable contains the number of bytes in the longest line that was received as part of the message, not counting the line termination character(s). -It is not valid if the &%spool_files_wireformat%& option is used. +It is not valid if the &%spool_wireformat%& option is used. .vitem &$message_age$& .cindex "message" "age of" @@ -13042,7 +13046,7 @@ separates the body from the header. Newlines are included in the count. See also &$message_size$&, &$body_linecount$&, and &$body_zerocount$&. If the spool file is wireformat -(see the &%spool_files_wireformat%& main option) +(see the &%spool_wireformat%& main option) the CRLF line-terminators are included in the count. .vitem &$message_exim_id$& @@ -13095,7 +13099,7 @@ deny condition = \ In the MAIL and RCPT ACLs, the value is zero because at that stage the message has not yet been received. -This variable is not valid if the &%spool_files_wireformat%& option is used. +This variable is not valid if the &%spool_wireformat%& option is used. .vitem &$message_size$& .cindex "size" "of message" @@ -13115,7 +13119,22 @@ While running a per message ACL (mail/rcpt/predata), &$message_size$& contains the size supplied on the MAIL command, or -1 if no size was given. The value may not, of course, be truthful. -.vitem &$mime_$&&'xxx'& +.vitem &$mime_anomaly_level$& &&& + &$mime_anomaly_text$& &&& + &$mime_boundary$& &&& + &$mime_charset$& &&& + &$mime_content_description$& &&& + &$mime_content_disposition$& &&& + &$mime_content_id$& &&& + &$mime_content_size$& &&& + &$mime_content_transfer_encoding$& &&& + &$mime_content_type$& &&& + &$mime_decoded_filename$& &&& + &$mime_filename$& &&& + &$mime_is_coverletter$& &&& + &$mime_is_multipart$& &&& + &$mime_is_rfc822$& &&& + &$mime_part_count$& A number of variables whose names start with &$mime$& are available when Exim is compiled with the content-scanning extension. For details, see section &<>&. @@ -13228,18 +13247,10 @@ For details see chapter &<>&. This variable is set to &"yes"& if PRDR was requested by the client for the current message, otherwise &"no"&. -.vitem &$prvscheck_address$& -This variable is used in conjunction with the &%prvscheck%& expansion item, -which is described in sections &<>& and -&<>&. - -.vitem &$prvscheck_keynum$& -This variable is used in conjunction with the &%prvscheck%& expansion item, -which is described in sections &<>& and -&<>&. - -.vitem &$prvscheck_result$& -This variable is used in conjunction with the &%prvscheck%& expansion item, +.vitem &$prvscheck_address$& &&& + &$prvscheck_keynum$& &&& + &$prvscheck_result$& +These variables are used in conjunction with the &%prvscheck%& expansion item, which is described in sections &<>& and &<>&. @@ -13308,11 +13319,13 @@ variable contains that address when the &'Received:'& header line is being built. The value is copied after recipient rewriting has happened, but before the &[local_scan()]& function is run. -.vitem &$received_ip_address$& +.vitem &$received_ip_address$& &&& + &$received_port$& .vindex "&$received_ip_address$&" -As soon as an Exim server starts processing an incoming TCP/IP connection, this -variable is set to the address of the local IP interface, and &$received_port$& -is set to the local port number. (The remote IP address and port are in +.vindex "&$received_port$&" +As soon as an Exim server starts processing an incoming TCP/IP connection, these +variables are set to the address and port on the local IP interface. +(The remote IP address and port are in &$sender_host_address$& and &$sender_host_port$&.) When testing with &%-bh%&, the port value is -1 unless it has been set using the &%-oMi%& command line option. @@ -13325,10 +13338,6 @@ messages that are received, thus making these variables available at delivery time. For outbound connections see &$sending_ip_address$&. -.vitem &$received_port$& -.vindex "&$received_port$&" -See &$received_ip_address$&. - .vitem &$received_protocol$& .vindex "&$received_protocol$&" When a message is being processed, this variable contains the name of the @@ -22491,6 +22500,14 @@ header, Exim has a configuration option (&%envelope_to_remove%&) which requests its removal from incoming messages, so that delivered messages can safely be resent to other recipients. +.new +&*Note:*& If used on a transport handling multiple recipients +(the smtp transport unless &%rcpt_max%& is 1, the appendfile, pipe or lmtp +transport if &%batch_max%& is greater than 1) +then information about Bcc recipients will be leaked. +Doing so is generally not advised. +.wen + .option event_action transports string&!! unset .cindex events @@ -29953,7 +29970,8 @@ depends on the behavious of the peer (not all peers can send a feature-specific TLS Alert). This feature is available when Exim is built with -OpenSSL 1.1.0 or later or GnuTLS 3.2.0 or later. +OpenSSL 1.1.0 or later or GnuTLS 3.2.0 or later; +the macro _HAVE_TLS_ALPN will be defined when this is so. .wen @@ -35265,11 +35283,11 @@ C variables are as follows: .vlist .vitem &*int&~body_linecount*& This variable contains the number of lines in the message's body. -It is not valid if the &%spool_files_wireformat%& option is used. +It is not valid if the &%spool_wireformat%& option is used. .vitem &*int&~body_zerocount*& This variable contains the number of binary zero bytes in the message's body. -It is not valid if the &%spool_files_wireformat%& option is used. +It is not valid if the &%spool_wireformat%& option is used. .vitem &*unsigned&~int&~debug_selector*& This variable is set to zero when no debugging is taking place. Otherwise, it @@ -37690,8 +37708,8 @@ lists_request: lists_post: driver = redirect domains = lists.example - senders = ${if exists {/usr/lists/$local_part}\ - {lsearch;/usr/lists/$local_part}{*}} + local_parts = ${lookup {$local_part} dsearch,filter=file,ret=full {/usr/lists}} + senders = ${if exists {$local_part_data} {lsearch;$local_part_data}{*}} file = ${lookup {$local_part} dsearch,ret=full {/usr/lists}} forbid_pipe forbid_file @@ -41868,10 +41886,14 @@ variables: .vitem &$spf_received$& .vindex &$spf_received$& - This contains a complete Received-SPF: header that can be - added to the message. Please note that according to the SPF - draft, this header must be added at the top of the header - list. Please see section 10 on how you can do this. + This contains a complete Received-SPF: header (name and + content) that can be added to the message. Please note that + according to the SPF draft, this header must be added at the + top of the header list, i.e. with +.code +add_header = :at_start:$spf_received +.endd + See section &<>& for further details. Note: in case of "Best-guess" (see below), the convention is to put this string in a header called X-SPF-Guess: instead.