ph10 2006/06/28 17:00:24 BST
Modified files:
exim-doc/doc-txt ChangeLog NewStuff
exim-src ACKNOWLEDGMENTS
exim-src/src acl.c exim.c globals.c globals.h macros.h
readconf.c
Added files:
exim-test/confs 0535
exim-test/log 0535
exim-test/mail 0535.userx
exim-test/scripts/0000-Basic 0535
Log:
Add acl_not_smtp_start ACL (mostly Johannes Berg's patch).
Revision Changes Path
1.363 +6 -2 exim/exim-doc/doc-txt/ChangeLog
1.104 +14 -0 exim/exim-doc/doc-txt/NewStuff
1.49 +1 -0 exim/exim-src/ACKNOWLEDGMENTS
1.62 +34 -20 exim/exim-src/src/acl.c
1.40 +14 -1 exim/exim-src/src/exim.c
1.54 +3 -0 exim/exim-src/src/globals.c
1.38 +1 -0 exim/exim-src/src/globals.h
1.26 +1 -0 exim/exim-src/src/macros.h
1.23 +1 -0 exim/exim-src/src/readconf.c
1.1 +46 -0 exim/exim-test/confs/0535 (new)
1.1 +6 -0 exim/exim-test/log/0535 (new)
1.1 +20 -0 exim/exim-test/mail/0535.userx (new)
1.1 +7 -0 exim/exim-test/scripts/0000-Basic/0535 (new)
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.362
retrieving revision 1.363
diff -u -r1.362 -r1.363
--- ChangeLog 28 Jun 2006 13:59:12 -0000 1.362
+++ ChangeLog 28 Jun 2006 16:00:23 -0000 1.363
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.362 2006/06/28 13:59:12 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.363 2006/06/28 16:00:23 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -20,8 +20,8 @@
TF/01 Correct an error in the documentation for the redirect router. Exim
does (usually) call initgroups() when daemonizing.
-TF/02 Call initgroups() when dropping privilege in exim.c, so that Exim runs with
- consistent privilege compared to when running as a daemon.
+TF/02 Call initgroups() when dropping privilege in exim.c, so that Exim runs
+ with consistent privilege compared to when running as a daemon.
TF/03 Note in the spec that $authenticated_id is not set for local
submissions from trusted users.
@@ -51,6 +51,10 @@
PH/05 Applied Alex Kiernan's patch to fix Bugzilla #99: a problem with
libradius.
+
+PH/06 Added acl_not_smtp_start, based on Johannes Berg's patch, and set the
+ bit to forbid control=suppress_local_fixups in the acl_not_smtp ACL,
+ because it is too late at that time, and has no effect.
Exim version 4.62
Index: NewStuff
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/NewStuff,v
retrieving revision 1.103
retrieving revision 1.104
diff -u -r1.103 -r1.104
--- NewStuff 27 Jun 2006 14:34:26 -0000 1.103
+++ NewStuff 28 Jun 2006 16:00:23 -0000 1.104
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.103 2006/06/27 14:34:26 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.104 2006/06/28 16:00:23 ph10 Exp $
New Features in Exim
--------------------
@@ -16,6 +16,20 @@
an Exim filter has a relative path for its argument, and $home is defined,
it is automatically prepended to the relative path. This action can now be
prevented by setting filter_prepend_home false.
+
+2. There is a new acl, set by acl_not_smtp_start, which is run right at the
+ start of receiving a non-SMTP message, before any of the message has been
+ read. (This is the analogue of the acl_smtp_predata ACL for SMTP input.) The
+ result of this ACL is ignored; it cannot be used to reject a message. If
+ you really need to, you could set a value in an ACL variable here and reject
+ based on that in the acl_not_smtp ACL. However, this ACL can be used to set
+ controls, and in particular, it can be used to set control=suppress_local_
+ fixups, which cannot be used in the acl_not_smtp ACL because by the time
+ that ACL is run, it is too late. When the acl_not_smtp_start ACL is run, the
+ sender and recipients are known, so the "senders" and "sender_domains"
+ conditions and $sender_address and $recipients variables can be used.
+ Variables such as $authenticated_ sender are also available. It is possible
+ to specify added header lines in this ACL.
Version 4.62
Index: ACKNOWLEDGMENTS
===================================================================
RCS file: /home/cvs/exim/exim-src/ACKNOWLEDGMENTS,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- ACKNOWLEDGMENTS 28 Jun 2006 13:59:13 -0000 1.48
+++ ACKNOWLEDGMENTS 28 Jun 2006 16:00:23 -0000 1.49
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-src/ACKNOWLEDGMENTS,v 1.48 2006/06/28 13:59:13 ph10 Exp $
+$Cambridge: exim/exim-src/ACKNOWLEDGMENTS,v 1.49 2006/06/28 16:00:23 ph10 Exp $
EXIM ACKNOWLEDGEMENTS
@@ -72,6 +72,7 @@
Patch for ${quote_local_part
Peter Benie A number mistakes found by analysing the code
Johannes Berg Suggested patch for authentication client $auth<n> support
+ Suggested patch for acl_not_smtp_start
Matt Bernstein LMTP over socket
Suggested patch for dnslists '&' feature
Mike Bethune Help with debugging an elusive ALRM signal bug
Index: acl.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/acl.c,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -r1.61 -r1.62
--- acl.c 27 Jun 2006 15:07:18 -0000 1.61
+++ acl.c 28 Jun 2006 16:00:23 -0000 1.62
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/acl.c,v 1.61 2006/06/27 15:07:18 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/acl.c,v 1.62 2006/06/28 16:00:23 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -323,12 +323,14 @@
0, /* acl */
(unsigned int)
- ~((1<<ACL_WHERE_MAIL)|(1<<ACL_WHERE_RCPT)| /* add_header */
+ ~((1<<ACL_WHERE_MAIL)|(1<<ACL_WHERE_RCPT)| /* add_header */
(1<<ACL_WHERE_PREDATA)|(1<<ACL_WHERE_DATA)|
- (1<<ACL_WHERE_MIME)|(1<<ACL_WHERE_NOTSMTP)),
+ (1<<ACL_WHERE_MIME)|(1<<ACL_WHERE_NOTSMTP)|
+ (1<<ACL_WHERE_NOTSMTP_START)),
- (1<<ACL_WHERE_NOTSMTP)|(1<<ACL_WHERE_CONNECT)| /* authenticated */
- (1<<ACL_WHERE_HELO),
+ (1<<ACL_WHERE_NOTSMTP)| /* authenticated */
+ (1<<ACL_WHERE_NOTSMTP_START)|
+ (1<<ACL_WHERE_CONNECT)|(1<<ACL_WHERE_HELO),
#ifdef EXPERIMENTAL_BRIGHTMAIL
(1<<ACL_WHERE_AUTH)| /* bmi_optin */
@@ -337,7 +339,8 @@
(1<<ACL_WHERE_ETRN)|(1<<ACL_WHERE_EXPN)|
(1<<ACL_WHERE_MAILAUTH)|
(1<<ACL_WHERE_MAIL)|(1<<ACL_WHERE_STARTTLS)|
- (1<<ACL_WHERE_VRFY)|(1<<ACL_WHERE_PREDATA),
+ (1<<ACL_WHERE_VRFY)|(1<<ACL_WHERE_PREDATA)|
+ (1<<ACL_WHERE_NOTSMTP_START),
#endif
0, /* condition */
@@ -366,7 +369,7 @@
(1<<ACL_WHERE_ETRN)|(1<<ACL_WHERE_EXPN)|
(1<<ACL_WHERE_MAILAUTH)|(1<<ACL_WHERE_QUIT)|
(1<<ACL_WHERE_MAIL)|(1<<ACL_WHERE_STARTTLS)|
- (1<<ACL_WHERE_VRFY),
+ (1<<ACL_WHERE_VRFY)|(1<<ACL_WHERE_NOTSMTP_START),
(1<<ACL_WHERE_AUTH)| /* dk_policy */
(1<<ACL_WHERE_CONNECT)|(1<<ACL_WHERE_HELO)|
@@ -374,7 +377,7 @@
(1<<ACL_WHERE_ETRN)|(1<<ACL_WHERE_EXPN)|
(1<<ACL_WHERE_MAILAUTH)|(1<<ACL_WHERE_QUIT)|
(1<<ACL_WHERE_MAIL)|(1<<ACL_WHERE_STARTTLS)|
- (1<<ACL_WHERE_VRFY),
+ (1<<ACL_WHERE_VRFY)|(1<<ACL_WHERE_NOTSMTP_START),
(1<<ACL_WHERE_AUTH)| /* dk_sender_domains */
(1<<ACL_WHERE_CONNECT)|(1<<ACL_WHERE_HELO)|
@@ -382,7 +385,7 @@
(1<<ACL_WHERE_ETRN)|(1<<ACL_WHERE_EXPN)|
(1<<ACL_WHERE_MAILAUTH)|(1<<ACL_WHERE_QUIT)|
(1<<ACL_WHERE_MAIL)|(1<<ACL_WHERE_STARTTLS)|
- (1<<ACL_WHERE_VRFY),
+ (1<<ACL_WHERE_VRFY)|(1<<ACL_WHERE_NOTSMTP_START),
(1<<ACL_WHERE_AUTH)| /* dk_sender_local_parts */
(1<<ACL_WHERE_CONNECT)|(1<<ACL_WHERE_HELO)|
@@ -390,7 +393,7 @@
(1<<ACL_WHERE_ETRN)|(1<<ACL_WHERE_EXPN)|
(1<<ACL_WHERE_MAILAUTH)|(1<<ACL_WHERE_QUIT)|
(1<<ACL_WHERE_MAIL)|(1<<ACL_WHERE_STARTTLS)|
- (1<<ACL_WHERE_VRFY),
+ (1<<ACL_WHERE_VRFY)|(1<<ACL_WHERE_NOTSMTP_START),
(1<<ACL_WHERE_AUTH)| /* dk_senders */
(1<<ACL_WHERE_CONNECT)|(1<<ACL_WHERE_HELO)|
@@ -398,7 +401,7 @@
(1<<ACL_WHERE_ETRN)|(1<<ACL_WHERE_EXPN)|
(1<<ACL_WHERE_MAILAUTH)|(1<<ACL_WHERE_QUIT)|
(1<<ACL_WHERE_MAIL)|(1<<ACL_WHERE_STARTTLS)|
- (1<<ACL_WHERE_VRFY),
+ (1<<ACL_WHERE_VRFY)|(1<<ACL_WHERE_NOTSMTP_START),
(1<<ACL_WHERE_AUTH)| /* dk_status */
(1<<ACL_WHERE_CONNECT)|(1<<ACL_WHERE_HELO)|
@@ -406,20 +409,24 @@
(1<<ACL_WHERE_ETRN)|(1<<ACL_WHERE_EXPN)|
(1<<ACL_WHERE_MAILAUTH)|(1<<ACL_WHERE_QUIT)|
(1<<ACL_WHERE_MAIL)|(1<<ACL_WHERE_STARTTLS)|
- (1<<ACL_WHERE_VRFY),
+ (1<<ACL_WHERE_VRFY)|(1<<ACL_WHERE_NOTSMTP_START),
#endif
- (1<<ACL_WHERE_NOTSMTP), /* dnslists */
+ (1<<ACL_WHERE_NOTSMTP)| /* dnslists */
+ (1<<ACL_WHERE_NOTSMTP_START),
(unsigned int)
~(1<<ACL_WHERE_RCPT), /* domains */
- (1<<ACL_WHERE_NOTSMTP)|(1<<ACL_WHERE_CONNECT)| /* encrypted */
+ (1<<ACL_WHERE_NOTSMTP)| /* encrypted */
+ (1<<ACL_WHERE_CONNECT)|
+ (1<<ACL_WHERE_NOTSMTP_START)|
(1<<ACL_WHERE_HELO),
0, /* endpass */
- (1<<ACL_WHERE_NOTSMTP), /* hosts */
+ (1<<ACL_WHERE_NOTSMTP)| /* hosts */
+ (1<<ACL_WHERE_NOTSMTP_START),
(unsigned int)
~(1<<ACL_WHERE_RCPT), /* local_parts */
@@ -475,7 +482,9 @@
(1<<ACL_WHERE_HELO)|
(1<<ACL_WHERE_MAILAUTH)|
(1<<ACL_WHERE_ETRN)|(1<<ACL_WHERE_EXPN)|
- (1<<ACL_WHERE_STARTTLS)|(1<<ACL_WHERE_VRFY),
+ (1<<ACL_WHERE_STARTTLS)|(1<<ACL_WHERE_VRFY)|
+ (1<<ACL_WHERE_NOTSMTP)|
+ (1<<ACL_WHERE_NOTSMTP_START),
#endif
/* Certain types of verify are always allowed, so we let it through
@@ -498,7 +507,8 @@
#endif
#ifdef EXPERIMENTAL_DOMAINKEYS
- (1<<ACL_WHERE_DATA)|(1<<ACL_WHERE_NOTSMTP), /* dk_verify */
+ (1<<ACL_WHERE_DATA)|(1<<ACL_WHERE_NOTSMTP)| /* dk_verify */
+ (1<<ACL_WHERE_NOTSMTP_START),
#endif
0, /* error */
@@ -509,9 +519,11 @@
(unsigned int)
~(1<<ACL_WHERE_RCPT), /* caselower_local_part */
- (1<<ACL_WHERE_NOTSMTP), /* enforce_sync */
+ (1<<ACL_WHERE_NOTSMTP)| /* enforce_sync */
+ (1<<ACL_WHERE_NOTSMTP_START),
- (1<<ACL_WHERE_NOTSMTP), /* no_enforce_sync */
+ (1<<ACL_WHERE_NOTSMTP)| /* no_enforce_sync */
+ (1<<ACL_WHERE_NOTSMTP_START),
(unsigned int)
~((1<<ACL_WHERE_MAIL)|(1<<ACL_WHERE_RCPT)| /* freeze */
@@ -529,7 +541,8 @@
(unsigned int)
~((1<<ACL_WHERE_MAIL)|(1<<ACL_WHERE_RCPT)| /* suppress_local_fixups */
- (1<<ACL_WHERE_NOTSMTP)|(1<<ACL_WHERE_PREDATA)),
+ (1<<ACL_WHERE_PREDATA)|
+ (1<<ACL_WHERE_NOTSMTP_START)),
#ifdef WITH_CONTENT_SCAN
(unsigned int)
@@ -548,7 +561,8 @@
(1<<ACL_WHERE_PREDATA)|(1<<ACL_WHERE_DATA)|
(1<<ACL_WHERE_MIME)),
- (1<<ACL_WHERE_NOTSMTP) /* no_multiline */
+ (1<<ACL_WHERE_NOTSMTP)| /* no_multiline */
+ (1<<ACL_WHERE_NOTSMTP_START)
};
/* Structure listing various control arguments, with their characteristics. */
Index: exim.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/exim.c,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- exim.c 22 May 2006 18:42:34 -0000 1.39
+++ exim.c 28 Jun 2006 16:00:24 -0000 1.40
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/exim.c,v 1.39 2006/05/22 18:42:34 fanf2 Exp $ */
+/* $Cambridge: exim/exim-src/src/exim.c,v 1.40 2006/06/28 16:00:24 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -4422,7 +4422,7 @@
}
}
-/* Otherwise, set up the input size limit here */
+/* Otherwise, set up the input size limit here. */
else
{
@@ -4636,6 +4636,19 @@
for (i = 0; i < recipients_count; i++)
debug_printf(" %s\n", recipients_list[i].address);
}
+ }
+
+ /* Run the acl_not_smtp_start ACL if required. The result of the ACL is
+ ignored; rejecting here would just add complication, and it can just as
+ well be done later. Allow $recipients to be visible in the ACL. */
+
+ if (acl_not_smtp_start != NULL)
+ {
+ uschar *user_msg, *log_msg;
+ enable_dollar_recipients = TRUE;
+ (void)acl_check(ACL_WHERE_NOTSMTP_START, NULL, acl_not_smtp_start,
+ &user_msg, &log_msg);
+ enable_dollar_recipients = FALSE;
}
/* Read the data for the message. If filter_test is not FTEST_NONE, this
Index: globals.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/globals.c,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -r1.53 -r1.54
--- globals.c 6 Mar 2006 16:05:12 -0000 1.53
+++ globals.c 28 Jun 2006 16:00:24 -0000 1.54
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/globals.c,v 1.53 2006/03/06 16:05:12 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/globals.c,v 1.54 2006/06/28 16:00:24 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -168,6 +168,7 @@
#ifdef WITH_CONTENT_SCAN
uschar *acl_not_smtp_mime = NULL;
#endif
+uschar *acl_not_smtp_start = NULL;
uschar *acl_smtp_auth = NULL;
uschar *acl_smtp_connect = NULL;
uschar *acl_smtp_data = NULL;
@@ -204,6 +205,7 @@
US"EXPN",
US"EHLO or HELO",
US"MAILAUTH",
+ US"non-SMTP-start",
US"QUIT",
US"STARTTLS",
US"VRFY"
@@ -221,6 +223,7 @@
550, /* EXPN */
550, /* HELO/EHLO */
0, /* MAILAUTH; not relevant */
+ 0, /* not SMTP; not relevant */
0, /* QUIT; not relevant */
550, /* STARTTLS */
252 /* VRFY */
Index: globals.h
===================================================================
RCS file: /home/cvs/exim/exim-src/src/globals.h,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -r1.37 -r1.38
--- globals.h 6 Mar 2006 16:05:12 -0000 1.37
+++ globals.h 28 Jun 2006 16:00:24 -0000 1.38
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/globals.h,v 1.37 2006/03/06 16:05:12 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/globals.h,v 1.38 2006/06/28 16:00:24 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -110,6 +110,7 @@
#ifdef WITH_CONTENT_SCAN
extern uschar *acl_not_smtp_mime; /* For MIME parts of ditto */
#endif
+extern uschar *acl_not_smtp_start; /* ACL run at the beginning of a non-SMTP session */
extern uschar *acl_smtp_auth; /* ACL run for AUTH */
extern uschar *acl_smtp_connect; /* ACL run on SMTP connection */
extern uschar *acl_smtp_data; /* ACL run after DATA received */
Index: macros.h
===================================================================
RCS file: /home/cvs/exim/exim-src/src/macros.h,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- macros.h 27 Jun 2006 14:34:26 -0000 1.25
+++ macros.h 28 Jun 2006 16:00:24 -0000 1.26
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/macros.h,v 1.25 2006/06/27 14:34:26 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/macros.h,v 1.26 2006/06/28 16:00:24 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -778,6 +778,7 @@
ACL_WHERE_EXPN,
ACL_WHERE_HELO,
ACL_WHERE_MAILAUTH,
+ ACL_WHERE_NOTSMTP_START,
ACL_WHERE_QUIT,
ACL_WHERE_STARTTLS,
ACL_WHERE_VRFY
Index: readconf.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/readconf.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- readconf.c 9 Mar 2006 15:10:16 -0000 1.22
+++ readconf.c 28 Jun 2006 16:00:24 -0000 1.23
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/readconf.c,v 1.22 2006/03/09 15:10:16 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/readconf.c,v 1.23 2006/06/28 16:00:24 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -138,6 +138,7 @@
#ifdef WITH_CONTENT_SCAN
{ "acl_not_smtp_mime", opt_stringptr, &acl_not_smtp_mime },
#endif
+ { "acl_not_smtp_start", opt_stringptr, &acl_not_smtp_start },
{ "acl_smtp_auth", opt_stringptr, &acl_smtp_auth },
{ "acl_smtp_connect", opt_stringptr, &acl_smtp_connect },
{ "acl_smtp_data", opt_stringptr, &acl_smtp_data },
Index: 0535
====================================================================
# Exim test configuration 0535
exim_path = EXIM_PATH
host_lookup_order = bydns
primary_hostname = myhost.test.ex
rfc1413_query_timeout = 0s
spool_directory = DIR/spool
log_file_path = DIR/spool/log/%slog
gecos_pattern = ""
gecos_name = CALLER_NAME
# ----- Main settings -----
acl_not_smtp_start = one
trusted_users = CALLER
# ----- ACLs -----
begin ACL
one:
warn senders = ^nofix@
control = suppress_local_fixups
add_header = X-Added: $recipients
# ----- Routers -----
begin routers
r1:
driver = accept
transport = t1
# ----- Transports -----
begin transports
t1:
driver = appendfile
user = CALLER
file = DIR/test-mail/$local_part
# End
Index: 0535
====================================================================
1999-03-02 09:44:33 10HmaX-0005vi-00 <= CALLER@??? U=CALLER P=local S=sss
1999-03-02 09:44:33 10HmaX-0005vi-00 => userx <userx@???> R=r1 T=t1
1999-03-02 09:44:33 10HmaX-0005vi-00 Completed
1999-03-02 09:44:33 10HmaY-0005vi-00 <= nofix@??? U=CALLER P=local S=sss
1999-03-02 09:44:33 10HmaY-0005vi-00 => userx <userx@???> R=r1 T=t1
1999-03-02 09:44:33 10HmaY-0005vi-00 Completed
Index: 0535.userx
====================================================================
From CALLER@??? Tue Mar 02 09:44:33 1999
Received: from CALLER by myhost.test.ex with local (Exim x.yz)
(envelope-from <CALLER@???>)
id 10HmaX-0005vi-00
for userx@???; Tue, 2 Mar 1999 09:44:33 +0000
Message-Id: <E10HmaX-0005vi-00@???>
From: CALLER_NAME <CALLER@???>
Date: Tue, 2 Mar 1999 09:44:33 +0000
No headers supplied.
From nofix@??? Tue Mar 02 09:44:33 1999
Received: from CALLER by myhost.test.ex with local (Exim x.yz)
(envelope-from <nofix@???>)
id 10HmaY-0005vi-00
for userx@???; Tue, 2 Mar 1999 09:44:33 +0000
X-Added: userx@???
No headers supplied.
Index: 0535
====================================================================
# acl_not_smtp_start
exim -odi userx@???
No headers supplied.
****
exim -odi -f nofix@??? userx@???
No headers supplied.
****