X-Git-Url: https://git.exim.org/users/jgh/exim.git/blobdiff_plain/8783ca699f1ee699540f994552bf7d7836ce4703..1f155f8e69b44ee7678dd1009ae0348e5c8d768e:/doc/doc-misc/WishList diff --git a/doc/doc-misc/WishList b/doc/doc-misc/WishList index cbe95d569..e266116ea 100644 --- a/doc/doc-misc/WishList +++ b/doc/doc-misc/WishList @@ -1,8 +1,12 @@ -$Cambridge: exim/doc/doc-misc/WishList,v 1.38 2005/06/14 10:40:41 ph10 Exp $ - EXIM 4 WISH LIST ---------------- +This Wish List is now obsolete. The items it contains have been imported into +the Exim Bugzilla, which is where all new wishes should be added. This file is +no longer maintained. Some day it should be deleted. + + +=============================================================================== Even when it was first released, Exim 4 had a Wish List because not all the things suggested for it were implemented. The list has not stopped growing... @@ -295,16 +299,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 +360,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 +367,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 +405,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 +434,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 +464,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 +473,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 +497,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 +555,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 +828,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 +1149,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 +1214,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 +1249,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 +1286,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 +1307,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 +1318,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 +1423,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 +1583,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 +1784,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 +1874,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 @@ -1986,12 +1883,177 @@ 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. ------------------------------------------------------------------------------ -(335) 14-Jun-05 T Re-arrange default configuration +(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: + +(|16 Spaces) *< (Connection|MAIL|RCPT|HELO|EHLO|DATA) rejected (from +
)?: (\(\))?" +------------------------------------------------------------------------------ + +(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. +------------------------------------------------------------------------------ + +(354) 30-Jun-06 ? Extensions to SMTP error codes + +A number of ideas arose following a discussion on the mailing list. I record +them here so that they don't get lost. The motivations were to support the 551 +bounce code and enhanced status codes. Suggestions are to add a new ACL +feature, possibly one of: + + errorcode = 511 + control = errorcode=551 + message = 551 xxxx + +where in the last case, it's recognized by being 3 digits. In all cases, the +first digit must be "right" for the circumstance - ignore or fault if not? + +To handle ESC, perhaps a new variable called $smtp_errorcode, settable by an +option in a router when it fails, would do the trick. It could be used in any +of the above modifiers. +------------------------------------------------------------------------------ + +(355) 30-Jun-06 ? Facility to permit experiments with SMTP extensions + +This is what was suggested: + +- adding some expansion variables: $ehlo_extensions (which will + hold the remote server supported smtp extensions announced + in the ehlo) and $rcpt_arguments with any RCPT extra argument + +- a main configuration option for adding ehlo extensions to the + ehlo response, like: + + extra_ehlo_extensions = XFOO : XBAR + +- a extra option for the smtp transport to add arguments to + the RCPT TO command, like: + + rcpt_args = FOO=BAR (will make exim issue RCPT TO: FOO=BAR + when delivering that message) + +- a new acl for unknown smtp commands -A small niggle which might be worth fixing is the ordering of the ACL in the -default configuration file. The relay_from_hosts and authenticated clauses -would be better off before the dnslists examples. However, this should be left -until a x.x0 release, because of the documentation implications. +This should be very simple to implement and will allow to make +some experiments and implement custom extensions, i.e. one to +known if remote client will redirect on 551 or not. Also the acl +for unknown smpt command could be used for other purposes, like +to dectect and react to some kiddies that send things like +http://... on the smtp port. ------------------------------------------------------------------------------ ---- HWM 335 ------------------------------------------------------------------ +--- HWM 355 ------------------------------------------------------------------ ---------------------------- End of WishList ---------------------------------