+PH/05 Previously, if "verify = helo" was set in an ACL, the condition was true
+ only if the host matched helo_try_verify_hosts, which caused the
+ verification to occur when the EHLO/HELO command was issued. The ACL just
+ tested the remembered result. Now, if a previous verification attempt has
+ not happened, "verify = helo" does it there and then.
+
+PH/06 It is now possible to specify a port number along with a host name or
+ IP address in the list of hosts defined in the manualroute or
+ queryprogram routers, fallback_hosts, or the "hosts" option of the smtp
+ transport. These all override any port specification on the transport.
+ The relatively standard syntax of using a colon separator has been
+ adopted, but there are some gotchas that need attention:
+
+ * In all these lists of hosts, colon is the default separator, so either
+ the colon that specifies a port must be doubled, or the separator must
+ be changed. The following two examples have the same effect:
+
+ fallback_hosts = host1.tld::1225 : host2.tld::1226
+ fallback_hosts = <; host1.tld:1225 ; host2.tld:1226
+
+ * When IPv6 addresses are involved, it gets worse, because they contain
+ colons of their own. To make this case easier, it is permitted to
+ enclose an IP address (either v4 or v6) in square brackets if a port
+ number follows. Here's an example from a manualroute router:
+
+ route_list = * "</ [10.1.1.1]:1225 / [::1]:1226"
+
+ If the "/MX" feature is to be used as well as a port specifier, the port
+ must come last. For example:
+
+ route_list = * dom1.tld/mx::1225
+
+PH/07 $smtp_command_argument is now set for all SMTP commands, not just the
+ non-message ones. This makes it possible to inspect the complete command
+ for RCPT commands, for example. But see also PH/45 below.
+
+PH/08 The ${eval expansion now supports % as a "remainder" operator.
+
+PH/09 There is a new ACL condition "verify = not_blind". It checks that there
+ are no blind (bcc) recipients in the message. Every envelope recipient
+ must appear either in a To: header line or in a Cc: header line for this
+ condition to be true. Local parts are checked case-sensitively; domains
+ are checked case-insensitively. If Resent-To: or Resent-Cc: header lines
+ exist, they are also checked. This condition can be used only in a DATA
+ or non-SMTP ACL.
+
+ There are, of course, many legitimate messages that make use of blind
+ (bcc) recipients. This check should not be used on its own for blocking
+ messages.
+
+PH/10 There is a new ACL control called "suppress_local_fixups". This applies
+ to locally submitted (non TCP/IP) messages, and is the complement of
+ "control = submission". It disables the fixups that are normally applied
+ to locally-submitted messages. Specifically:
+
+ (a) Any Sender: header line is left alone (in this respect, it's a
+ dynamic version of local_sender_retain).
+
+ (b) No Message-ID:, From:, or Date: headers are added.
+
+ (c) There is no check that From: corresponds to the actual sender.
+
+ This feature may be useful when a remotely-originated message is
+ accepted, passed to some scanning program, and then re-submitted for
+ delivery. It means that all four possibilities can now be specified:
+
+ (1) Locally submitted, fixups applies: the default.
+ (2) Locally submitted, no fixups applied: use control =
+ suppress_local_fixups.
+ (3) Remotely submitted, no fixups applied: the default.
+ (4) Remotely submitted, fixups applied: use control = submission.
+
+PH/11 There is a new log selector, "unknown_in_list", which provokes a log
+ entry when the result of a list match is failure because a DNS lookup
+ failed.
+
+PH/12 There is a new variable called $smtp_command which contains the full SMTP
+ command (compare $smtp_command_argument - see PH/07 above). This makes it
+ possible to distinguish between HELO and EHLO, and also between things
+ like "MAIL FROM:<>" and "MAIL FROM: <>".
+
+TF/01 There's a new script in util/ratelimit.pl which extracts sending
+ rates from log files, to assist with choosing appropriate settings
+ when deploying the ratelimit ACL condition.
+
+PH/13 A new letter, "H", is available in retry parameter sets. It is similar
+ to "G" (geometric increasing time intervals), except that the interval
+ before the next retry is randomized. Each time, the previous interval is
+ multiplied by the factor in order to get a maximum for the next interval.
+ The mininum interval is the first argument of the parameter, and an
+ actual interval is chosen randomly between them. Such a rule has been
+ found to be helpful in cluster configurations when all the members of the
+ cluster restart at once, and may synchronize their queue processing
+ times.
+
+PH/14 The options never_users, trusted_users, admin_groups, and trusted_groups
+ are now expanded when the configuration file is read.
+