[exim-cvs] cvs commit: exim/exim-doc/doc-txt ChangeLog NewSt…

Top Page
Delete this message
Reply to this message
Author: Philip Hazel
Date:  
To: exim-cvs
Subject: [exim-cvs] cvs commit: exim/exim-doc/doc-txt ChangeLog NewStuff exim/exim-src ACKNOWLEDGMENTS exim/exim-src/src acl.c exim.c globals.c globals.h macros.h readconf.c exim/exim-test/confs 0535 exim/ex
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.
****