+PH/07 $acl_verify_message is now set immediately after the failure of a
+ verification in an ACL, and so is available in subsequent modifiers. In
+ particular, the message can be preserved by coding like this:
+
+ warn !verify = sender
+ set acl_m0 = $acl_verify_message
+
+ Previously, $acl_verify_message was set only while expanding "message"
+ and "log_message" when a very denied access.
+
+PH/08 The redirect router has two new options, sieve_useraddress and
+ sieve_subaddress. These are passed to a Sieve filter to specify the :user
+ and :subaddress parts of an address. Both options are unset by default.
+ However, when a Sieve filter is run, if sieve_useraddress is unset, the
+ entire original local part (including any prefix or suffix) is used for
+ :user. An unset subaddress is treated as an empty subaddress.
+
+PH/09 Quota values can be followed by G as well as K and M.
+
+PH/10 $message_linecount is a new variable that contains the total number of
+ lines in the header and body of the message. Compare $body_linecount,
+ which is the count for the body only. During the DATA and
+ content-scanning ACLs, $message_linecount contains the number of lines
+ received. Before delivery happens (that is, before filters, routers, and
+ transports run) the count is increased to include the Received: header
+ line that Exim standardly adds, and also any other header lines that are
+ added by ACLs. The blank line that separates the message header from the
+ body is not counted. Here is an example of the use of this variable in a
+ DATA ACL:
+
+ deny message = Too many lines in message header
+ condition = \
+ ${if <{250}{${eval: $message_linecount - $body_linecount}}}
+
+ In the MAIL and RCPT ACLs, the value is zero because at that stage the
+ message has not yet been received.
+