Version 4.05 ------------ 1. There was inconsistency in the way failures to set up TLS sessions in the smtp transport were handled when the host was not in hosts_require_tls. It deferred for 4xx responses to STARTTLS, but tried in clear if the actual TLS negotiation failed. It now does the same thing in both cases, and what this is can be controlled by the new option tls_tempfail_tryclear. This defaults true, causing a retry in clear to occur. If it is set false, these kinds of temporary failure cause a defer (for that host; if there are other hosts, they are tried). 2. The "condition" condition in ACLs has been tightened up. Formerly, anything other than an empty string, "0", "no" or "false" was treated as "true". Now it insists on "yes", "true", or a non-zero number. Any other values cause a the condition to return "defer". This makes things safer when there are errors in conditions. 3. When Exim uses Berkeley DB version 3 or 4 to create a DBM file, it creates it in hashed format. Previously, it opened these files for reading in the same format. Now it opens them as "unknown", which means that other formats (such as btree) can be accessed when using DB files for auxiliary data. 4. When a reference to a header is made in an expansion (e.g. $h_to:), and the header line is one of those that may contain a list of addresses (Bcc:, Cc:, From:, Reply-To:, Sender:, To:, and the Resent- equivalents), Exim now inserts a comma between multiple occurrences of the header line. This is so that constructs such as "if foranyaddress $h_to: ..." work when there is more than one header with the given name. RFC 2822 forbids multiple header lines, but RFC 822 did not, and in any case there will always be people who don't follow the rules. When concatenating other header lines, and for the $message_headers variable, no comma is inserted. ****