Another wish. Thick and fast they came at last...
[users/heiko/exim.git] / doc / doc-misc / WishList
index 3863f1bdd1c1cc54573022657b5ef46c644aed3d..a1c0243af28ea38497adf2988dd68a63a2d9472f 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-misc/WishList,v 1.5 2004/11/02 09:39:44 ph10 Exp $
+$Cambridge: exim/doc/doc-misc/WishList,v 1.24 2005/03/07 09:36:43 ph10 Exp $
 
 EXIM 4 WISH LIST
 ----------------
 
 EXIM 4 WISH LIST
 ----------------
@@ -577,15 +577,6 @@ size. Directory scanning is expensive; is there any scope for caching? It would
 seem not (you don't often get two addresses to the same user).
 ------------------------------------------------------------------------------
 
 seem not (you don't often get two addresses to the same user).
 ------------------------------------------------------------------------------
 
-(4)  01-Jan-02  S  Option to reject if no From: or Date: header line
-
-Exim, in common with many other MTAs, inserts a From: or Date: header line if
-one is missing. (It also inserts a blank Bcc:, but that is no longer needed by
-RFC 2822 - it was by 822.) The suggestion is an option to give an error
-instead. This could be done by making it possible to detect these insertions in
-the acl_smtp_data ACL.
-------------------------------------------------------------------------------
-
 (6)  01-Jan-02  S  Option to disable the use of -t
 Dave C.
 
 (6)  01-Jan-02  S  Option to disable the use of -t
 Dave C.
 
@@ -767,9 +758,11 @@ Client: We need a variant of 'exim -bs' which would connect to a specified
 host, send AUTH/ATRN, and then accept incoming messages as usual.
 ------------------------------------------------------------------------------
 
 host, send AUTH/ATRN, and then accept incoming messages as usual.
 ------------------------------------------------------------------------------
 
-(50)  22-May-02 T  Add comment (duplicate address) to Envelope-To:
+(50)  22-May-02 S?  Add comment (duplicate address) to Envelope-To:
 
 
-This is just to minimize the confusion some people have.
+This is just to minimize the confusion some people have. However, it is not
+trivially easy to decide which to label as duplicates because of complications
+with redirection. I'm not convinced it will actually reduce confusion.
 ------------------------------------------------------------------------------
 
 (51)  07-Jun-02 S  Option to use another address in callout MAIL FROM
 ------------------------------------------------------------------------------
 
 (51)  07-Jun-02 S  Option to use another address in callout MAIL FROM
@@ -880,6 +873,12 @@ cleanly.
 
 22-Apr-04: Implemented for domains, addresses, and local parts. Hosts are
 too messy!
 
 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
 ------------------------------------------------------------------------------
 
 (74)  22-Jul-02 M  Extend -bV to do more semantic checking
@@ -1319,6 +1318,10 @@ done.)
 ------------------------------------------------------------------------------
 
 (202) 10-Oct-03 S  -bvsomething to do a callout after the verify
 ------------------------------------------------------------------------------
 
 (202) 10-Oct-03 S  -bvsomething to do a callout after the verify
+
+For example: -bvc and -bvsc. The problem now (Nov 04) is that there are quite a
+few possible callout options that can be specified in an ACL, and they would
+have to be replicated here.
 ------------------------------------------------------------------------------
 
 (203) 14-Oct-03 S  verify=something to easily check for header presence
 ------------------------------------------------------------------------------
 
 (203) 14-Oct-03 S  verify=something to easily check for header presence
@@ -1372,7 +1375,9 @@ 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
 (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.
+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
 ------------------------------------------------------------------------------
 
 (215) 26-Nov-03 M/L Conversion of IDNA domain names for logging
@@ -1413,14 +1418,10 @@ be able to set variables in routers like in acl's." This is effectively a
 radical suggestion for a complete re-design, and is therefore BIG.
 ------------------------------------------------------------------------------
 
 radical suggestion for a complete re-design, and is therefore BIG.
 ------------------------------------------------------------------------------
 
-(222) 19-Dec-03 S  Iterative option for dnsdb
-
-A way of getting a dnsdb lookup to chop off components until something is
-found: e.g. ${lookup dndsb-i{ns=a.b.c.d}} would look for nameservers for
-a.b.c.d, then b.c.d, etc.
-------------------------------------------------------------------------------
-
 (223) 22-Dec-03 S  Support SOA lookup in dnsdb lookups
 (223) 22-Dec-03 S  Support SOA lookup in dnsdb lookups
+
+This could be like zns, and climb up the tree till it hits a zone. Would the
+name of the zone be required?
 ------------------------------------------------------------------------------
 
 (225) 22-Dec-03 M  Add acl= to routers
 ------------------------------------------------------------------------------
 
 (225) 22-Dec-03 M  Add acl= to routers
@@ -1474,7 +1475,8 @@ and last item with ease; doing this using {if ...} would be quite difficult!"
 (230) 30-Jan-04 M  Find IP addresses of a domain's nameservers
 
 This needs some way of processing a list of things in a similar way, which
 (230) 30-Jan-04 M  Find IP addresses of a domain's nameservers
 
 This needs some way of processing a list of things in a similar way, which
-should perhaps be a more general facility.
+should perhaps be a more general facility. // This can now be done using the
+list facilities of dnsdb; verbose, but it can be done. //
 ------------------------------------------------------------------------------
 
 (231) 30-Jan-04 ?  -C has a number of problems when used for real
 ------------------------------------------------------------------------------
 
 (231) 30-Jan-04 ?  -C has a number of problems when used for real
@@ -1493,7 +1495,9 @@ course, security issues. This is not something I want to go into at present.
 (235) 02-Feb-04 T  Make smtp_accept_count available as a variable
 
 This is for use in ACLs. Of course, it is a snapshot of the count at the
 (235) 02-Feb-04 T  Make smtp_accept_count available as a variable
 
 This is for use in ACLs. Of course, it is a snapshot of the count at the
-start of the receiving process.
+start of the receiving process. As such, it could be confusing because if a
+connection lasts a long time, the "true" value could be very different. For
+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
 ------------------------------------------------------------------------------
 
 (236) 02-Feb-04 S  String in local_scan that's added to the binary version string
@@ -1520,7 +1524,8 @@ library, because there's no crypto code in Exim itself.
 (240) 23-Feb-04 ? Some way to know if a ip is a mx for a given domain
 
 Some kind of iterative operation for dnsdb might be a general way of providing
 (240) 23-Feb-04 ? Some way to know if a ip is a mx for a given domain
 
 Some kind of iterative operation for dnsdb might be a general way of providing
-this.
+this. // This can now be done using the list facilities of dnsdb; verbose, but
+it can be done. //
 ------------------------------------------------------------------------------
 
 (242) 01-Mar-04 ? Run a filter from an expansion condition
 ------------------------------------------------------------------------------
 
 (242) 01-Mar-04 ? Run a filter from an expansion condition
@@ -1601,14 +1606,6 @@ A modifier that sets a delay between lines for multiline responses.
 Given that pids are reused non-cyclically these days, is this actually useful?
 ------------------------------------------------------------------------------
 
 Given that pids are reused non-cyclically these days, is this actually useful?
 ------------------------------------------------------------------------------
 
-(269) 26-May-04 U Run both a system and a user filter in test mode
-
-    exim -bF systemfilter -bf userfilter -f sender@dom < message
-
-This would allow testing the way the userfilter handles the system
-variables set by the systemfilter.
-------------------------------------------------------------------------------
-
 (270) 01-Jun-04 M Add headers at top and middle
 
 Various initiatives like SPF and DomainKeys require header lines to be added
 (270) 01-Jun-04 M Add headers at top and middle
 
 Various initiatives like SPF and DomainKeys require header lines to be added
@@ -1661,7 +1658,8 @@ Similar to the bounce and delivery warn message files.
 (280) 23-Jun-04 M A way of adding a header line after callout defer_ok
 
 This would record that, e.g., a sender domain verified, but the callout
 (280) 23-Jun-04 M A way of adding a header line after callout defer_ok
 
 This would record that, e.g., a sender domain verified, but the callout
-could not be done.
+could not be done. There are ways of fudging this, using ACL variables and
+"warn" statements.
 ------------------------------------------------------------------------------
 
 (285) 16-Jul-04 M Separate and independent log_selector for rejectlog
 ------------------------------------------------------------------------------
 
 (285) 16-Jul-04 M Separate and independent log_selector for rejectlog
@@ -1731,23 +1729,12 @@ callout cache in time for the sender's next attempt."
 What about ** lines?
 ------------------------------------------------------------------------------
 
 What about ** lines?
 ------------------------------------------------------------------------------
 
-(298) 25-Oct-04 S Debugging the daemon process only
-
-When there are daemon problems (e.g. it dies) it would be helpful to be able to
-turn on debugging that did not get passed on to any subprocesses.
-------------------------------------------------------------------------------
-
 (299) 25-Oct-04 S Options to make Sieve "keep" pass to next router
 
 Currently, "keep" saves in the mailbox. Probably need two options, for implicit
 and explicit keep commands.
 ------------------------------------------------------------------------------
 
 (299) 25-Oct-04 S Options to make Sieve "keep" pass to next router
 
 Currently, "keep" saves in the mailbox. Probably need two options, for implicit
 and explicit keep commands.
 ------------------------------------------------------------------------------
 
-(300) 25-Oct-04 S Option to lock out Sieve or Exim filter
-
-Currently, if allow_filter is set, either kind of filter is permitted.
-------------------------------------------------------------------------------
-
 (301) 27-Oct-04 M Use an "ACL" to filter logging
 
 This idea was for ACL syntax to be able to "accept" or "deny" individual log
 (301) 27-Oct-04 M Use an "ACL" to filter logging
 
 This idea was for ACL syntax to be able to "accept" or "deny" individual log
@@ -1783,5 +1770,119 @@ doing the delivery. I am not at all keen on this. One way of doing it would be
 to implement (244), which provides an "on success" string expansion. Then
 anyone who wants this could run that on a transport that does nothing.
 ------------------------------------------------------------------------------
 to implement (244), which provides an "on success" string expansion. Then
 anyone who wants this could run that on a transport that does nothing.
 ------------------------------------------------------------------------------
---- HWM 305 ------------------------------------------------------------------
+
+(306) 09-Nov-04 M Make the search type partial-lsearch*@ be useful
+
+At present, it treats the whole key as a domain for the partial search, then
+does the *@ thing. A more sensible plan would be something like:
+
+  user@company.com
+  *@company.com
+  user@*.company.com
+  *@*.company.com
+  *
+
+That is, try the local part and * at each of the partial domain values.
+------------------------------------------------------------------------------
+
+(307) 24-Nov-04 S Check the syntax of Message-ID: header lines
+
+This could be added to "verify=header_syntax" or, if the incompatibility is
+felt to be too great, an additional condition, or a sub-option, could be added.
+------------------------------------------------------------------------------
+
+(308) 24-Nov-04 S Add $body_longlinecount and $header_longlinecount
+
+These variables would hold the number of physical lines in the body and header
+that were longer than 998 bytes. This would be fiddly to implement because of
+the way Exim currently reads the input. It isn't just a trivial patch.
+------------------------------------------------------------------------------
+
+(309) 01-Dec-04 S/M Queue runners should get locks before forking
+
+If a queue-runner opened the -D file and took out the lock before forking, it
+would waste fewer resources if the message was already being delivered. But how
+often would this actually matter in practice?
+------------------------------------------------------------------------------
+
+(310) 06-Dec-04 S After "personal" save what matched
+
+The idea is to save the email address that actually was found in the message
+in a variable so it can be used (e.g. as the From: address in an autoreply).
+------------------------------------------------------------------------------
+
+(311) 07-Dec-04 ? More flexible SMTP response codes
+
+The requestor wanted to be able to specify, for example, 551 in an ACL deny
+instead of 550, and also vary the defer code. The first digit, however, should
+remain fixed. In addition to main codes, enhanced status codes (RFC 2034) were
+requested. (As far as I can tell, they have never been highly popular.)
+------------------------------------------------------------------------------
+
+(312) 10-Dec-04 ? Shadow remote transports
+
+Unless a lot of work is done, this would be restricted to another remote
+transport. A similar effect could therefore be achieved with "shadow_hosts"
+which are like fallback_hosts but which operate on success.
+------------------------------------------------------------------------------
+
+(313) 21-Jan-05 ? Multiple queues
+
+Exim runs poorly if its queue gets too big. Various ways round this are all
+to some extent kludges. There has been a suggestion of using multiple
+directories instead of just "input". (Originally it was for a whole set of
+spool directories, but that introduces complications with the hint files.)
+On message arrival, somehow a selection of "input" must be made. Then queue
+runners must be startable for the different "queues". Don't forget that the
+"msglog" directory is also involved. Perhaps add a new level of indirection:
+/var/spool/exim/queue1/{input,msglog}, /var/spool/exim/queue2/....
+------------------------------------------------------------------------------
+
+(314) 15-Feb-05 M Multiple headers_{add,remove} for routers
+
+If headers_{add,remove} could be specified multiple times, it would be easier
+for those people that construct configs using .ifdef or .include, etc.
+------------------------------------------------------------------------------
+
+(315) 15-Feb-05 M String variables for use in filters.
+
+Currently, only numerical variables are supported.
+------------------------------------------------------------------------------
+
+(316) 21-Feb-05 M Put callout response into a variable
+
+When a callout fails, put the entire SMTP response into a variable. This is not
+trivial because we probably should retain it in the cache as well.
+------------------------------------------------------------------------------
+
+(317) 25-Feb-05 S Delete the pid file when the daemon exits
+
+At least try to catch some of the exit routes from the daemon and either delete
+or empty the pid file.
+------------------------------------------------------------------------------
+
+(318) 02-Mar-05 S Add current connection count to daemon's exiwhat output
+------------------------------------------------------------------------------
+
+(319) 03-Mar-05 ? Allow file rather than directory for scanning call
+
+"I can call arbitrary scanning software by specifying the full path. I can pass
+a directory to be scanned in the arguments. I'd like to be able to pass a
+specific file name instead of a directory. I think this would allow me to call
+Bogofilter at smtp time. Bogofilter requires a filename, not a directory. The
+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.
+------------------------------------------------------------------------------
+--- HWM 321 ------------------------------------------------------------------
 ---------------------------- End of WishList ---------------------------------
 ---------------------------- End of WishList ---------------------------------