X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/03fc05ca1d6e5d7a5baf40000c3963a5ed1b0fa7..4449d1067062efa0f3d88e801660e5aadbdeabb2:/doc/doc-docbook/spec.xfpt diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt index cea21a18f..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" @@ -13315,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. @@ -13332,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 @@ -22498,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 @@ -35273,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 @@ -37698,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