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 ChangeLog file contains a brief listing of all changes, including bug fixes.

When the manual is up-to-date with the code and there have been a lot of recent changes, the more important ones may be listed here for convenient reference. Otherwise this file will contain just these two introductory paragraphs.

Version 1.90: Short list of some of the new things

  1. New expansion operators ${local_part:}, ${domain:}, and ${hash__:} and the "extract" operator has been extended to a new form: ${extract {number} {separators} {string}}.
  2. There's a new testing option -bh which must be followed by an IP address. This runs a fake SMTP session as if from that IP address, using stdin and stdout. Additional comments as to what is going on are written to stderr. These include lines beginning with "LOG" for anything that would have been logged. This facility is for testing configuration options for blocking hosts and/or senders and for checking on relaying control.
  3. If there is only a single recipient address in an incoming message, then when the Received: header line is being built, the expansion variable $received_for is set to contain that address. Otherwise that variable is always empty. The default setting of received_header_text has been changed to include the use of this new variable when set.
  4. The filtering facilities now include 10 variables with names n0 - n9. These start out at zero and can be incremented by the "add" command. After the system filter has run, a copy of the variables is taken, and made available in user filters as the expansions $sn0 - $sn9. Thus a system filter can, for example, do "scoring" which users' filters can make use of.
  5. The freeze and fail filter commands can now be followed by the word "text" and a string giving an error message.
  6. The amount of disc space available is checked whenever SIZE is received on a MAIL FROM command.
  7. There is a facility for looping through a list of addresses in mail filters. It uses a new "foranyaddress" condition.
  8. A facility for local "shadow transports" has been added. This is somewhat experimental and may change in future.
  9. There is a new defaulting option that can be used with single-key search types. If the type name is followed by "*@" (e.g. lsearch*@) then, if the initial lookup fails and the key contains an @ character, a second lookup is done with everything before the last @ replaced by *.
  10. Directors and routers now have generic options headers_add and headers_remove.
  11. If an SMTP greeting line contains ESMTP, Exim now sends EHLO instead of HELO, and if it is told the SIZE parameter is supported, it adds SIZE=xxx to each MAIL FROM command.
  12. Customization of error messages generated by Exim is now supported.
  13. Delivery failure messages now contain an X-Failed-Recipients header, listing all failed addresses, for the benefit of programs that try to analyse such messages automatically.
  14. If /dev/null is generated by an aliasfile or forwardfile, arrange to skip its delivery at top level, thus avoiding the need for a uid/gid on the transport.
  15. When a delivery is not part of a queue run (typically an immediate delivery on receipt of a message), the directors are always run for local addresses, and local deliveries are always attempted, even if retry times are set for them.
  16. The smtp_etrn_serialize option (default TRUE) prevents the simultaneous execution of more than one queue run for the same argument string as a result of an ETRN command.
  17. The "errors_to" option is now a generic option that is available for all directors and routers, instead of just aliasfile and forwardfile.
  18. For sendmail compatibility, if an incoming, non-smtp message has a From: header containing just the unqualified login id of the calling user, stick it in angle brackets, with the gecos field in front.
  19. There's a new variable called sender_rcvhost, for use in Received headers, to allow them easily to be strictly compatible with RFC 822. The default header now uses it.
  20. The domainlist router has a option called host_find_failed, which tells it what to do if a host which it tries to look up does not exist.
  21. Several new rewrite flags have been added.
  22. Alias files can now contain the items :defer: and :fail:.
  23. Support for LDAP.

End


Nigel Metheringham

$Id: NewStuff.html,v 1.2 2000/04/09 22:02:32 nigel Exp $