Docs: Change the copyright holder to "The Exim Maintainers"
[exim.git] / doc / doc-docbook / spec.xfpt
index 393085832eb9aa4f0c14dbef74350b8749179c76..194a8a5e9a93d9063aaeefc161b0596328bf0b2d 100644 (file)
@@ -54,7 +54,7 @@
 .set drivernamemax "64"
 
 .macro copyyear
-2020
+2021
 .endmacro
 
 . /////////////////////////////////////////////////////////////////////////////
 </revision></revhistory>
 <copyright><year>
 .copyyear
-           </year><holder>University of Cambridge</holder></copyright>
+           </year><holder>The Exim Maintainers</holder></copyright>
 </bookinfo>
 .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 &<<SECTscanvirus>>&).
 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 &<<SECTscanmimepart>>&.
@@ -13228,18 +13247,10 @@ For details see chapter &<<SECTproxyInbound>>&.
 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 &<<SECTexpansionitems>>& and
-&<<SECTverifyPRVS>>&.
-
-.vitem &$prvscheck_keynum$&
-This variable is used in conjunction with the &%prvscheck%& expansion item,
-which is described in sections &<<SECTexpansionitems>>& and
-&<<SECTverifyPRVS>>&.
-
-.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 &<<SECTexpansionitems>>& and
 &<<SECTverifyPRVS>>&.
 
@@ -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
@@ -35266,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
@@ -37691,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