New Features in Exim
--------------------

This file contains descriptions of new features that have been added to Exim,
but have not yet made it into the main manual (which is most conveniently
updated when there is a relatively large batch of changes). The doc/ChangeLog
file contains a listing of all changes, including bug fixes.


Version 4.30
------------

The documentation is up-to-date for the 4.30 release. What follows here is a
brief list of the new features that have been added since 4.20.

 1. New expansion operator: ${quote_local_part. The ${quote operator now quotes
    empty strings. New expansion conditions: eqi, isip, isip4, isip6.

 2. New option -t<n> for exigrep.

 3. New configuration options/features: .include_if_exists, host_lookup_order,
    transport_filter_timeout, smtp_max_synprot_errors, tcp_nodelay,
    bounce_return_body, tls_remember_esmtp, hosts_avoid_esmtp,
    rcpt_include_affixes, queue_only_override, syslog_duplication,
    acl_smtp_mailauth, process_log_path, extra_local_interfaces. If
    received_header_text expands to an empty string, no Received: header line
    is added to the message.

 4. New variables: $received_count, $local_user_uid, $local_user_gid,
    $mailstore_basename. The $sender_host_variable now automatically does a
    lookup when referenced. The $acl_xxx variables are now saved with
    messages so are available at delivery time.

 5. Exim maildir support now includes support for maildirsize files.

 6. Some new error conditions are now recognizable in retry rules:

      timeout_A           any timeout for a host not obtained from an MX record
      timeout_connect_A   ditto, for connection timeouts only
      timeout_MX          any timeout for a host obtained from an MX record
      timeout_connect_MX  ditto, for connection timeouts only

 7. The "port" option of the smtp transport is now expanded.

 8. New ACL features: "logwrite" modifier; log_message modifier is used when
    "discard" triggers. The feature for contraining the result of dnslists
    lookup is considerably extended.

 9. Custom header lines can now be added to messages sent by "mail" or
    "vacation" in filter files, by means of the "extra_headers" argument.

10. If the definition of the Exim user in Local/Makefile is given in the form

      EXIM_USER=ref:exim

    the name is bound into the binary, instead of being looked up at build
    time.

11. New build-time options FIXED_NEVER_USERS, ALT_CONFIG_PREFIX,
    ALT_CONFIG_ROOT_ONLY, DISABLE_D_OPTION.

12. An LDAP query can now be preceded by "dereference=" to set the dereferenc-
    ing parameter for alias values.

13. The functions Exim::debug_write() and Exim::log_write() are now available
    for use in embedded Perl.

14. Support for lookups in Interbase databases has been added, courtesy of
    Ard Biesheuvel.

15. The new lookup type nwildlsearch is like wildlsearch, except that the key
    strings in the file are not string-expanded.

16. New log selector: smtp_incomplete_transaction.

17. When an ACL is read dynamically from a file (or anywhere else), the lines
    are now processed in the same way as lines in the Exim configuration file.

18. Command line options: -ti is equivalent to -t -i; -Ooption=value is
    ignored; -bhc is like -bh but does callouts.

19. When execve() failed while trying to run a command in a pipe transport,
    Exim was returning EX_UNAVAILBLE (69) from the subprocess. However, this
    could be confused with a return value of 69 from the command itself. This
    has been changed to 127, the value the shell returns if it is asked to run
    a non-existent command.

20. New eximstats option: -nt.

21. The way that the $h_ (and $header_) expansions work has been changed by the
    addition of RFC 2047 decoding.

22. There is now support for Sieve filters (RFC 3028).

23. The smtp_printf() function is now available for (careful) use in
    local_scan() functions.

24. Following a discussion on the list, the rules by which Exim recognises line
    endings on incoming messages have been changed. The -dropcr and drop_cr
    options are now no-ops, retained only for backwards compatibility. The
    following line terminators are recognized: LF CRLF CR.

25. An item in a manualroute/queryprogram list of hosts can be followed by /MX
    to mean "those hosts to which this MX resolves".

26. Exim now has support for Cyrus saslauthd authentication. This works in a
    similar way to Cyrus pwcheck authentication (which is now deprecated).

27. The way daemon_smtp_port, local_interfaces, and -oX interact has been
    extended, compatibily I hope. A new option called extra_local_interfaces
    has been added.

****
