(1) Don't ignore timeouts while writing to a pipe! (As opposed to
[exim.git] / doc / doc-txt / NewStuff
index b2563f30c0f92e70654da0d30a3844121a40752b..f0abee45a709b21f18ca871a3f4835ae9a544a87 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/NewStuff,v 1.33 2005/04/05 13:58:34 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/NewStuff,v 1.39 2005/05/03 14:20:00 ph10 Exp $
 
 New Features in Exim
 --------------------
@@ -130,6 +130,57 @@ PH/06 Macros may now be defined or redefined between router, transport,
       driver or ACL, or in the local_scan, retry, or rewrite sections of the
       configuration.
 
+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.
+
+PH/11 In a ${run expansion, the variable $value (which contains the standard
+      output) is now also usable in the "else" string.
+
+PH/12 In a pipe transport, although a timeout while waiting for the pipe
+      process to complete was treated as a delivery failure, a timeout while
+      writing the message to the pipe was logged, but erroneously treated as a
+      successful delivery. Such timeouts include transport filter timeouts. For
+      consistency with the overall process timeout, these timeouts are now
+      treated as errors, giving rise to delivery failures by default. However,
+      there is now a new Boolean option for the pipe transport called
+      timeout_defer, which, if set TRUE, converts the failures into defers for
+      both kinds of timeout. A transport filter timeout is now identified in
+      the log output.
+
 
 Version 4.50
 ------------