X-Git-Url: https://git.exim.org/users/jgh/exim.git/blobdiff_plain/54cdb463ab15d0a064cfe0a276b3e3974767c8c7..9176e9f0046f5b7344bc8fadf09104d8bacc5d9d:/doc/doc-txt/NewStuff diff --git a/doc/doc-txt/NewStuff b/doc/doc-txt/NewStuff index 6f3ac86d1..f0abee45a 100644 --- a/doc/doc-txt/NewStuff +++ b/doc/doc-txt/NewStuff @@ -1,4 +1,4 @@ -$Cambridge: exim/doc/doc-txt/NewStuff,v 1.32 2005/04/04 10:33:49 ph10 Exp $ +$Cambridge: exim/doc/doc-txt/NewStuff,v 1.39 2005/05/03 14:20:00 ph10 Exp $ New Features in Exim -------------------- @@ -100,6 +100,87 @@ PH/04 There is a new option called acl_not_smtp_mime that allows you to scan MIME parts in non-SMTP messages. It operates in exactly the same way as acl_smtp_mime +PH/05 It is now possible to redefine a macro within the configuration file. + The macro must have been previously defined within the configuration (or + an included file). A definition on the command line using the -D option + causes all definitions and redefinitions within the file to be ignored. + In other words, -D overrides any values that are set in the file. + Redefinition is specified by using '==' instead of '='. For example: + + MAC1 = initial value + ... + MAC1 == updated value + + Redefinition does not alter the order in which the macros are applied to + the subsequent lines of the configuration file. It is still the same + order in which the macros were originally defined. All that changes is + the macro's value. Redefinition makes it possible to accumulate values. + For example: + + MAC1 = initial value + ... + MAC1 == MAC1 and something added + + This can be helpful in situations where the configuration file is built + from a number of other files. + +PH/06 Macros may now be defined or redefined between router, transport, + authenticator, or ACL definitions, as well as in the main part of the + configuration. They may not, however, be changed within an individual + 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 ------------