[exim] Testing Exim 4.70 prerelease

Top Page

Reply to this message
Author: Tom Kistner
To: Exim Users
CC: exim-dev
Subject: [exim] Testing Exim 4.70 prerelease
The release of Exim 4.70 is on the horizon. A lot of stuff has
accumulated in CVS since January 2008. Since we want to give the current
code some wider exposure, please accept this invitation to test a 4.70
pre-release. You can get the current code by pulling a snapshot from
David's GIT shadow:

git clone git://git.exim.org/exim-src.git

Or wget a tarball here:


Feel free to post testing results to this list - no matter if positive
or negative.

The main new features are:

* Native DKIM support without an external library.
Docs: http://www.exim.org/~tom/doctest/ch54.html

* Experimental DCC support via dccifd (contributed
by Wolfgang Breyha). See further below for docs.

Other changes:

* PCRE removed from Exim distribution. You will need
a separate PCRE library (and matching headers) to
compile Exim.

* Experimental Yahoo! Domainkeys support dropped in
favor of native DKIM support.

Here's the full changelog:

TK/01 Added patch by Johannes Berg that expands the main option
       "spamd_servers" if it starts with a dollar sign.

TK/02 Write list of recipients to X-Envelope-Sender header when building
       the mbox-format spool file for content scanning (suggested
       by Jakob Hirsch)

TK/03 Added patch by Wolfgang Breyha that adds experimental DCC
       (http://www.dcc-servers.net/) support via dccifd. Activated by
       setting EXPERIMENTAL_DCC=yes in Local/Makefile. Check out
       experimental_spec.txt for more documentation.

TK/04 Bugzilla 673: Add f-protd malware scanner support. Patch submitted
       by Mark Daniel Reidel <mr@???>.

NM/01 Bugzilla 657: Embedded PCRE removed from the exim source tree.
       When building exim an external PCRE library is now needed -
       PCRE is a system library on the majority of modern systems.
       See entry on PCRE_LIBS in EDITME file.

NM/02 Bugzilla 646: Removed unwanted C/R in Dovecot authenticator
       conversation.  Added nologin parameter to request.
       Patch contributed by Kirill Miazine

TF/01 Do not log submission mode rewrites if they do not change the

TF/02 Bugzilla 662: Fix stack corruption before exec() in daemon.c.

NM/03 Bugzilla 602: exicyclog now handles panic log, and creates empty
       log files in place.  Contributed by Roberto Lima

NM/04 Bugzilla 667: close socket used by dovecot authenticator

TF/03 Bugzilla 615: When checking the local_parts router precondition
       after a local_part_suffix or local_part_prefix option, Exim now
       does not use the address's named list lookup cache, since this
       contains cached lookups for the whole local part.

NM/05 Bugzilla 521: Integrated SPF Best Guess support contributed by
       Robert Millan.  Documentation is in experimental-spec.txt

TF/04 Bugzilla 668: Fix parallel build (make -j).

NM/05 Bugzilla 437: Prevent Maildix aux files being created with
       mode 000

NM/05 Bugzilla 598: Improvement to Dovecot authenticator handling.
       Patch provided by Jan Srzednicki

TF/05 Leading white space used to be stripped from $spam_report which
       wrecked the formatting. Now it is preserved.

TF/06 Save $spam_score, $spam_bar, and $spam_report in spool files, so
       that they are available at delivery time.

TF/07 Fix the way ${extract is skipped in the untaken branch of a

TF/08 TLS error reporting now respects the incoming_interface and
       incoming_port log selectors.

TF/09 Produce a more useful error message if an SMTP transport's hosts
       setting expands to an empty string.

NM/06 Bugzilla 744: EXPN did not work under TLS.
       Patch provided by Phil Pennock

NM/07 Bugzilla 769: Extraneous comma in usage fprintf
       Patch provided by Richard Godbee

NM/08 Fixed erroneous documentation references to smtp_notquit_acl to be
       acl_smtp_notquit, added index entry.

NM/09 Bugzilla 787: Potential buffer overflow in string_format
       Patch provided by Eugene Bujak

NM/10 Bugzilla 770: Problem on some platforms modifying the len
       parameter to accept()
       Patch provided by Maxim Dounin

NM/11 Bugzilla 749: Preserve old behaviour of blanks comparing equal to
       Patch provided by Phil Pennock

NM/12 Bugzilla 497: Correct behaviour of exiwhat when no config exists.

NM/13 Bugzilla 590: Correct handling of Resent-Date headers.
       Patch provided by Brad "anomie" Jorsch

NM/14 Bugzilla 614: Added timeout setting to transport filter.
       Patch provided by Dean Brooks

TK/05 Add native DKIM support (does not depend on external libraries).

Documentation for experimental dccifd support
*) Building exim

In order to build exim with DCC support add


to your Makefile. (Re-)build/install exim. exim -d should show
EXPERIMENTAL_DCC under "Support for".

*) Configuration

In the main section of exim.conf add at least

dccifd_address = /usr/local/dcc/var/dccifd


dccifd_address = <ip> <port>

In the DATA ACL you can use the new condition

         dcc = *

After that "dcc_header" contains the X-DCC-Header.

*** WARNING: return codes changed from previous releases!

Return values are:
"fail" for overall "R", "G" from dccifd
"defer" for overall "T" from dccifd
"accept" for overall "A", "S" from dccifd

dcc = */defer_ok works as for spamd.

dcc_result contains the overall result from DCC answer

usually you'll use

defer !dcc = *

to greylist with DCC. If

dcc_direct_add_header = true

is set, then the dcc header will be added "in deep" and if the spool
file was already written it gets removed. This forces exim to write it
again if needed.
This helps to get the DCC Header through to eg. SpamAssassin.

If you want to pass even more headers in the middle of the DATA stage
you can use $acl_m_dcc_add_header to add information from eg. ClamAV.

Be careful. Header syntax is not checked and added "as is".