Add acl_not_smtp_start ACL (mostly Johannes Berg's patch).
[users/jgh/exim.git] / doc / doc-misc / WishList
index 93030f270e9cdfaad322a6ac7c5237f453e36dcd..6a114521bcd48007522b3934f04ae3efb9eea230 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-misc/WishList,v 1.37 2005/06/07 15:36:47 ph10 Exp $
+$Cambridge: exim/doc/doc-misc/WishList,v 1.68 2006/05/10 15:36:11 ph10 Exp $
 
 EXIM 4 WISH LIST
 ----------------
@@ -295,16 +295,6 @@ David Carter
 So several warnings could be generated as the mailbox got bigger and bigger.
 ------------------------------------------------------------------------------
 
-(146) 15-May-2000 M  Allow SMTP error codes in retry rules
-
-This would allow special handling of certain errors from certain hosts. In
-particular, it would allow failing of certain 4xx codes.
-
-This is now available for 4xx responses to RCPT commands. Is anything more
-needed? Apparently, yes; there's been a request for a similar feature for MAIL
-commands.
-------------------------------------------------------------------------------
-
 (148) 15-May-2000 S  Warn recipient if message rejected for quota excession.
 Heinz Ekker
 
@@ -366,15 +356,6 @@ delivery to a given address rather than freezing the message. Use the errors_to
 address?
 ------------------------------------------------------------------------------
 
-(172)  11-Sep-2000 S  Allow file/directory in appendfile to override
-"Michael J. Tubby"
-
-When appendfile is called from forward or filter files, it ignores file or
-directory settings. Maybe they should override. The path set by the forward or
-filter is available in $address_file these days, so it could be used to create
-a longer path.
-------------------------------------------------------------------------------
-
 (173)  18-Sep-2000 S  A way of doing lsearches with EOL terminated keys
 Jason Robertson
 
@@ -382,10 +363,6 @@ This is for looking up things like subject contents. Probably need an option to
 exim_dbmbuild to make them into DBM files.
 ------------------------------------------------------------------------------
 
-(174)  19-Sep-2000 S  A way of using a different port for fallback hosts.
-Dean Brooks
-------------------------------------------------------------------------------
-
 (181)  10-Nov-2000 S  Compile-time options for ignoring Sendmail options
 
 So that new ones could be accommodated easily.
@@ -424,12 +401,6 @@ latter would worth the hassle), in a way like:
         headers_remove = "X-*:Additional-header"
 ------------------------------------------------------------------------------
 
-(188)  02-Jan-2001 S  Make pipe timeout a temporary error
-Georg v.Zezschwitz
-
-A way to make a timeout into a temporary error.
-------------------------------------------------------------------------------
-
 (190)  03-Jan-2001 M  Multiple message operations in eximon
 ------------------------------------------------------------------------------
 
@@ -459,10 +430,6 @@ could be put into $recipient, but that risks confusion with $recipients
 might have. At ACL time, one would need to verify the recipient, and determine
 that it routed to host X.
 
-. A new lookup library that operates on a specially prepared file of IP
-addresses and masks so that a single "lookup" yields a yes/no answer. This
-should be a freestanding thing - needs a utility to build the file from a list.
-
 . People want to change the wording of messages; can we find an efficient way
 of allowing this? (Maybe put all messages into a separate module?) The problem
 is not in the messages themselves, but in the values that get inserted into
@@ -493,7 +460,8 @@ can make use of it.
 . Implement randomize for ldap/sql servers.
 
 . Add an option for ETRN that says "wait for the command to finish, and use its
-stdout as the SMTP response."
+stdout as the SMTP response."  // A serialized ETRN now does the waiting, but
+there is as yet no way to use the status. //
 
 . -odsomething for "ignore retry when doing immediate delivery".
 
@@ -501,9 +469,6 @@ stdout as the SMTP response."
 it were 4xx. Or possible add a sophisticated "after command X, treat xxx as
 yyy".
 
-. A way of rewriting addresses in non-standard header lines such as
-Mail-Followup-To.
-
 . Global option to enable initgroups() for exim uid. Default off.
 
 . When verifying a sender, should it be rewritten with any T rewrites, because
@@ -528,8 +493,6 @@ these entries.
 . Options and/or a utility to enable non-privileged users to view the queue
 (e.g. -bpp), manipulate their own messages, etc.
 
-. Specify a port along with a host in a route_list.
-
 . A generalized "From" escaping scheme that also escapes >From so that the
 whole thing can be reversed.
 
@@ -588,11 +551,8 @@ Would require work so that Exim itself doesn't use -t.
 John W Baxter
 
 May be tricky, because at the higher levels, the format of the query is not
-understood.
-------------------------------------------------------------------------------
-
-(8)  01-Jan-02  S  Expand once_repeat in autoreply
-John Jetmore
+understood. // There is now a fudge that works in some cases. See ChangeLog
+4.51/PH/10. //
 ------------------------------------------------------------------------------
 
 (9)  01-Jan-02  S  Headers as well as body in file for autoreply
@@ -864,24 +824,6 @@ So as to avoid duplication problems when sending multiple addresses in multiple
 copies to the same address.
 ------------------------------------------------------------------------------
 
-(73)  17-Jul-02 M  Match a list from within a condition
-
-e.g.  ${if matchdomain {$domain}{+domainlist} ...
-      ${if matchhost {$sender_host_address}{1.2.3.4/10:2.3.4.5/16}...
-
-Thought needed about how to handle host names. This may be too messy to specify
-cleanly.
-
-22-Apr-04: Implemented for domains, addresses, and local parts. Hosts are
-too messy!
-
-The only sensible approach seems to be to allow IP address arguments only.
-Anything else should be diagnosed as an error. However, if a name appears in
-the list, a PTR lookup should be done. This may require a lot of refactoring
-in the code, because of the current assumption that were are (almost) always
-dealing with THE sending host.
-------------------------------------------------------------------------------
-
 (74)  22-Jul-02 M  Extend -bV to do more semantic checking
 
 For example, diagnose "local_hosts" that should probably be "+local_hosts".
@@ -1203,10 +1145,6 @@ needed is a flag for a rewrite rule.
 Suggested patch supplied.
 ------------------------------------------------------------------------------
 
-(171) 23-Jun-03 S  Option to make timeout a soft failure on pipe transport
-
-------------------------------------------------------------------------------
-
 (172) 23-Jun-03 M  Option to make SQL query to specific server
 
 ------------------------------------------------------------------------------
@@ -1272,12 +1210,6 @@ Maybe there should always be a variable with the error message for all the
 different kinds of verify failure.
 ------------------------------------------------------------------------------
 
-(196) 30-Sep-03 S  A way of detecting whether it was HELO or EHLO in the ACL
-
-$received_protocol isn't reset until after the command is accepted (which
-seems right), and $smtp_data shows only the arguments. Maybe $smtp_command?
-------------------------------------------------------------------------------
-
 (197) 30-Sep-03 S  MACROS_DROP_PRIVS and ALT_CONFIG_DROP_PRIVS
 
 Now that alternative configurations can be restricted to certain directories,
@@ -1313,11 +1245,6 @@ This is an option that turns all hard bounces into soft bounces. The idea is
 that it can be used as a safety-net while testing configurations. Instead of a
 local bounce, the message stays on the queue; instead of 5xx SMTP responses,
 4xx ones are given.
-
-The ability to do the opposite - turn 4xx into 5xx under certain circumstances
-might also be useful (e.g. after a certain time). This might best be done by
-extending the retry logic to recognize 4xx as a special error. (This is now
-done.)
 ------------------------------------------------------------------------------
 
 (202) 10-Oct-03 S  -bvsomething to do a callout after the verify
@@ -1355,7 +1282,6 @@ permanent ones after some fixed time.
 ------------------------------------------------------------------------------
 
 (209) 31-Oct-03 S  a way of making crashes in pipe commands temporary errors
-
 ------------------------------------------------------------------------------
 
 (210) 31-Oct-03 S  runtime option to change the daemon name used for tcprwappers
@@ -1377,14 +1303,6 @@ See also 333.
 Unfortunately, this isn't quite as trivial as it seems.
 ------------------------------------------------------------------------------
 
-(215) 14-Nov-03 S  A way of turning off message-submission fix-ups
-
-Globally, and perhaps also via an ACL control so that it can be done on a
-per-message basis. Is this still needed? Since this item was added to this
-list, default fixups for non-local messages have been removed, and control =
-submission has been added.
-------------------------------------------------------------------------------
-
 (215) 26-Nov-03 M/L Conversion of IDNA domain names for logging
 
 IDNA (RFCs 3490-3492) converts domains names containing non-ASCII characters
@@ -1396,13 +1314,6 @@ e.g. exigrep, eximstats, will be automatically handled if the logs are
 changed.)
 ------------------------------------------------------------------------------
 
-(216) 27-Nov-03 S  Option to bounce if required TLS doesn't happen
-
-This is for the smtp transport with hosts_require_tls set. Currently, it
-defers. Possibly the best approach is to make the error one that can be seen by
-the retry logic.
-------------------------------------------------------------------------------
-
 (217) 27-Nov-03 M  A function to pass back variables from Perl
 
 This is a function that can be called from Perl, to take a name and a value and
@@ -1508,12 +1419,6 @@ this reason, I don't really like this idea.
 (236) 02-Feb-04 S  String in local_scan that's added to the binary version string
 ------------------------------------------------------------------------------
 
-(237) 02-Feb-04 M  Add_header in ACLs because "message" is overloaded
-
-This would be useful for verbs where "message" is an error message. See also
-333.
-------------------------------------------------------------------------------
-
 (238) 05-Feb-04 S  ${address to handle multiple addresses
 
 At present, ${address expects to see just one address. An extension would let
@@ -1674,12 +1579,6 @@ For example: mainlog_selector and rejectlog_selector, with log_selector setting
 both of them.
 ------------------------------------------------------------------------------
 
-(286) 21-Jul-04 M Distinguishing a larger number of errors
-
-For instance, detecting "connection reset by peer" (ENETRESET or ECONNRESET)
-might be useful.
-------------------------------------------------------------------------------
-
 (288) 10-Aug-04 M Option for verify to require MX
 
 e.g. verify=sender/require_mx
@@ -1881,12 +1780,6 @@ file would contain the complete email. I suppose there may be other scanning
 solutions with a similar requirement."
 ------------------------------------------------------------------------------
 
-(320) 03-Mar-05 T Options to control daemon retry binding
-
-Currently the daemon tries 10 times at 30-second intervals to listen on an IP
-address. The wish is for options to control these numbers.
-------------------------------------------------------------------------------
-
 (321) 07-Mar-05 S Run an ACL on a sync error
 
 ... and possibly "accept" or "deny" it.
@@ -1977,7 +1870,7 @@ headers should be re-planned and re-implemented in a more consistent manner.
 These are the main previous items:
 
 Exim 3 Wish List: 41, 85, 149, 187.
-Exim 4 Wish List: 55, 62, 63, 160, 212, 237, 270, 314, 328.
+Exim 4 Wish List: 55, 62, 63, 160, 212, 270, 314, 328.
 ------------------------------------------------------------------------------
 
 (334) 07-Jun-05 M Support for messages larger than 2G
@@ -1985,5 +1878,135 @@ Exim 4 Wish List: 55, 62, 63, 160, 212, 237, 270, 314, 328.
 This is probably a longish-term thing at the moment. Quotas over 2G are now
 supported, but not individual messages; no doubt one day this will be wanted.
 ------------------------------------------------------------------------------
---- HWM 334 ------------------------------------------------------------------
+
+(336) 16-Jun-05 M Show recipient(s) after header check failure
+
+The mainlog line for "There is no valid sender in any header line" shows the
+sending host and the envelope sender, but does not show any recipients. There
+has been a request to show recipients. Presumably this should be on some new
+log selector, and it must have a cutoff maximum number of recipients. NOTE: the
+data in the reject log does show the envelope recipients as part of its
+additional data.
+------------------------------------------------------------------------------
+
+(337) 29-Jun-05 S Add "defer" to $recipient_verify_failure
+
+This is for when defer_ok was set when verifying recipients. Since this isn't
+for a failure, we probably also need "ok" for the non-fail case.
+------------------------------------------------------------------------------
+
+(338) 14-Jul-05 M Change to Bind 9 API
+
+Exim uses the original API for calling the DNS resolver. There is a newer API
+available, and noises are being made in some OS that compatibility with the old
+API is going to be dropped. Nevertheless, there are sure to be systems about
+for ages that require the use of the old API. Therefore, we will have to
+implement not only an interface to the new API, but a backwards compatibility
+feature. It would be nice if this was automatic.
+------------------------------------------------------------------------------
+
+(339) 28-Jul-05 S Log name of maildir file
+
+This wish is for an option to log the name of the file that is written in
+maildir format (e.g. time.pid.host).
+------------------------------------------------------------------------------
+
+(340) 30-Aug-05 M Match more than one item
+
+match_address, for instance, matches one address to a list. The wish is to be
+able to supply two lists; for each address in the first list, search the
+second. Maybe something like ${match_any{...}{...}} is needed.
+------------------------------------------------------------------------------
+
+(341) 15-Sep-05 S Add /return_path_retain to submission mode
+
+This would re-instate the behaviour prior to change 4.52/PH/04.
+------------------------------------------------------------------------------
+
+(342) 26-Sep-05 T Log and maybe defer odd values for condition pre-condition
+
+Odd values for "condition" in an ACL cause it to defer. In a router, they are
+treated as "true". At least they should be logged in a router, and perhaps they
+should also defer, for compatibility with ACLs.
+------------------------------------------------------------------------------
+
+(343) 03-Oct-05 M A query-style lookup for scanning flat files
+
+The natural syntax for this would be to use a regex, like this:
+${lookup regex{/some/file regex}{found-string}{not-found-string}}
+However, it would be natural to want to use $1 etc in the found-string; this
+would be hard because of the lookup caching (if repeated, the lookup won't
+actually be done and therefore the numerical variables won't be set), and in
+any case, even without caching (and it could, I suppose, be disabled for this
+lookup) those variables are not in the right storage pool even if they were
+preserved after the lookup.
+
+An alternative approach might be to implement something like this:
+
+  ${scanfile{/some/file}{sub-expression}}
+
+where the sub-expression is expanded for every line in the file, with each line
+in turn being put into $value. This is like a conditional ${readfile, and in
+fact ${readfile could be written using ${scanfile. It would be nice to find a
+way of stopping the scan once something has happened. The only thing I can
+think of is to invent a variable that changes when scanning a line generates
+some non-null text, and then always to stop on a forced failure. That would
+allow expressions like this:
+
+  ${scanfile{/some/file}
+    {
+    ${if eq{$generated}{}{${if match{regex}{$value}{something}}} fail}
+    }}
+
+It's all rather clumsy. Once a line has matched and generated some text, the
+next iteration would stop the scan. Another thought: maybe use $scanline
+instead of $value (to save confusion) and have $scantext containing everything
+that's been generated so far. That sounds pretty flexible.
+------------------------------------------------------------------------------
+
+(344) 10-Oct-05 M Make debug_print work in authenticators
+------------------------------------------------------------------------------
+
+(345) 14-Oct-05 M Standardize rejection messages
+
+"The parsing for rejection lines is a bit of a mess, and fairly
+unmaintainable. Do you think it would be possible to standardise
+rejection/refusal log messages? How about something like:
+
+(<ID>|16 Spaces) *< (Connection|MAIL|RCPT|HELO|EHLO|DATA) rejected (from
+<Address>)?: <Reason> (\(<Detail>\))?"
+------------------------------------------------------------------------------
+
+(346) 20-Oct-05 S Set $domain and $local_part in retry matching
+
+Currently, these variables are unset. Make it like rewrite matching.
+------------------------------------------------------------------------------
+
+(347) 15-Nov-05 M Arrange to expand data from wildlsearch
+
+This would allow keys that are regular expressions to set up numerical
+variables that are included in the data. This has to be done inside the lookup
+code, because of caching. Probably means we have to invent ewildlsearch and
+enwildlsearch.
+------------------------------------------------------------------------------
+
+(351) 31-Mar-06 ? Allow some/all/a few internal variables to be set
+
+The original idea was to allow "set authenticated = x" to pretend a connection
+is authenticated after other conditions are true. This can, of course, be
+packaged up using macros in other ways. Setting other variables could cause
+problems.
+------------------------------------------------------------------------------
+
+(352) 04-Apr-06 S Add +accept_defer for host lists (and maybe others)
+
+At present, a defer causes a delivery defer. For non-critical ACLs there are
+times when it may be better to accept. See also 226 and 289.
+------------------------------------------------------------------------------
+
+(353) 10-May-06 T Add option to stop addition of $home in filter files
+
+This would make them more like Sieve (which came afterwards, I must point out).
+------------------------------------------------------------------------------
+--- HWM 353 ------------------------------------------------------------------
 ---------------------------- End of WishList ---------------------------------