removed stale WishList entry and fixed a couple of typos in
[exim.git] / doc / doc-misc / WishList
CommitLineData
3ec3e3bb 1$Cambridge: exim/doc/doc-misc/WishList,v 1.44 2005/07/21 21:22:53 jetmore Exp $
e05f33e0
PH
2
3EXIM 4 WISH LIST
4----------------
5
6Even when it was first released, Exim 4 had a Wish List because not all the
7things suggested for it were implemented. The list has not stopped growing...
8
9Another reason it is so long is that I have retained some items from the Exim 3
10Wish List that never got implemented, but which seem reasonable possibilities
11for later addition to Exim 4.
12
13I have guessed at the amount of work involved, and categorized the items as
14Tiny, Small, Medium, Large, or Unknown. The guesses are not based on any
15detailed investigation, so must be taken as very rough.
16
17
18------------------------------------------------------------------------------
19------------------------------------------------------------------------------
20----- Retained from the Exim 3 Wish List ------
21------------------------------------------------------------------------------
22------------------------------------------------------------------------------
23
24(10) 13-Jul-98 M more flexibility for pipe returns
25Ben Smithurst
26
27The ability to specify more precisely what happens concerning the return code
28from the pipe and the presence/absence of STDOUT/STDERR is requested. The
29particular configuration that was requested was:
30
31> if the command exited EX_OK, *and* produced nothing on STDOUT or
32> STDERR, it succeeded...
33> if the command exited EX_TEMPFAIL, defer, regardless of
34> STDOUT/STDERR...
35> otherwise freeze the message (this will get my attention by way of
36> freeze_tell_mailmaster)...
37------------------------------------------------------------------------------
38
39(11) 17-Jul-98 G support for DSN
40Andy Mell
41
42It is unclear to me how this should work in the presence of aliases and
43forwarding. Local deliveries would have to explicitly configured as deliveries
44or relaying or whatever. A substantial amount of code is probably needed.
45
46Jeffrey Goldberg
47I have nothing to add except to say that for many of the reasons you've
48stated, I don't think that DSN is coherent enough to be worth the effort
49to implement.
50
51Another comment:
52
53 I thought the RFC was pretty clear on this. In a nutshell, if the
54 delivery rewrites the envelope from address, it's considered a
55 terminal delivery (i.e. delivery to a mailing list exploder), otherwise
56 treat it as a forwarding operation (the /etc/aliases case). I would
57 treat a .forward expansion as a final delivery event (it got to the
58 user as far as the MTA is concerned).
59
60 Yes, we need the DSN syntax. We also require the complete semantics of
61 NOTIFY=SUCCESS,FAILURE for our application to work.
62
63 Electronic Bill Presentment is really going to push the need for
64 DSN support in MTAs. We just don't want to get stuck in a situation
65 where we're faced with a non-DSN-aware MTA when we go to install
66 our bill/statement engine, thus our interest in what the MTA vendors
67 are planning to do about DSN.
68------------------------------------------------------------------------------
69
70(41) 14-Oct-98 M Find a way of modifying header lines
71Oliver Smith
72
73The problem with header_remove followed by header_add is that you can't refer
74to the previous value of the header when adding a replacement. This could be
4990831e 75solved with a replace_header option. See also Exim 4/333.
e05f33e0
PH
76------------------------------------------------------------------------------
77
78(43) 15-Oct-98 M Sender rewrite *after* SMTP incoming checks
79Andreas Edler
80
81The anti-relaying check happens after the sender has been rewritten; there are
82times when it would be helpful to do the check on the original sender, not on
83the rewritten one. Quite how to configure this I'm not sure.
84
85A related suggestion (from Steve Sargent) is to retain the original sender
86address and make it accessible somehow.
87------------------------------------------------------------------------------
88
89(46) 20-Oct-98 L SMTP protocol hooks
90Malcolm Ray
91
92"But there are enough broken SMTP implementations to make me wonder whether
93there isn't a case for providing hooks for tweaking the SMTP transport's
94protocol exchange. Something which would allow me to say things like 'if, when
95talking to lame.example.com, you get a 251 response to a MAIL command, rewrite
96the response to 501 before continuing'."
97------------------------------------------------------------------------------
98
99(50) 13-Nov-98 M A "Focus" option for eximon
100Frank Elsner
101
102This is the opposite of "Hide"; it just displays a certain subset. Hmm. Could
103something clever be done with regular expressions?
104------------------------------------------------------------------------------
105
106(61) 22-Dec-98 M Send failed error messages to somebody
107Harald Meland
108
109With sendmail, the failed error message is made into a error message,
110with both envelope sender and recipient set to MAILER-DAEMON. The
111original, bogus-envelope-sender message is then available to whoever
112receives MAILER-DAEMON's mail. A more flexible approach would be to
113specify a specific recipient.
114------------------------------------------------------------------------------
115
116(81) 01-Mar-99 M Addition of Content-MD5 support
117Martin Hamilton
118
119Martin supplied a suggested patch at
120http://www.net.lut.ac.uk/~martin/antispam/exim-hacks/
121------------------------------------------------------------------------------
122
123(85) 15-Mar-99 M ability to rewrite addresses in non-standard headers
124Dave Lewney
125John Holman
126
4990831e 127Such as "return-receipt-to". See also 41. See also Exim 4/333.
e05f33e0
PH
128------------------------------------------------------------------------------
129
130(90) 21-Apr-99 M change wild prefix/suffix greediness
131Ben Smithurst
132
133Currently, when prefix or suffix containing * is set on a director, and the
134fixed part occurs more than once in a local part, the length of the prefix or
135suffix is maximized. For example, with suffix = -* and a local part of
136foo-bar-baz the suffix is taken as bar-baz, leaving the local part as foo.
137An option is proposed to invert this rule.
138------------------------------------------------------------------------------
139
140(91) 26-Apr-99 S make queue_run_in_order to newest first
141"Andreas M. Kirchwitz"
142
143The tidiest thing would be to have queue_run_order={random,oldest,newest},
144and make queue_run_in_order obsolete.
145------------------------------------------------------------------------------
146
147(93) 04-May-1999 L fallback_transport
148
149This would be a generic transport option, specifying a different transport to
150be used if the first one failed. Failed hard, or failed soft? Or an option?
151And if failed hard, is a bounce message sent as well, or not? There are uid
152issues. Remote delivery would have to be done always in a subprocess so that
153the main process could retain privilege in case the fallback transport was
154local. That could be conditional. That's why this is labelled "Large". Some of
155the things people want to do with this can be done by variations in the
156routers, e.g. use $message_age to switch routers.
157------------------------------------------------------------------------------
158
159(94) 13-May-1999 M message to go with -Mg
160Dave Holland
161Alan Thew
162
163So the admin can pass back a reason.
164------------------------------------------------------------------------------
165
166(99) 28-May-1999 M header to list failures for syntax_errors_to
167mark david mcCreary
168
169"I use the syntax_errors_to feature to email a copy of the error message.
170It would be helpful to have the X-Failed-Receipients header in there,
171identifying which addreses(s) are the problem, so that I don't have to
172parse the body of the email message to figure out which addresses."
173------------------------------------------------------------------------------
174
175(100) 04-Jun-1999 S admin_users option, like trusted_users
176Paul Mansfield
177------------------------------------------------------------------------------
178
179(102) 21-Jun-1999 M expanded basic variables
180Julian King
181
182Oh, and a wishlist entry, qualify_domain, and preferably other variables
183can be set with a $lookup in the first part of the exim configuration
184file, perhaps by an equivalent to backticks in shell script ("`command`")?
185------------------------------------------------------------------------------
186
187(105) 28-Jun-1999 M MIME-format bounce messages
188Paul Makepeace
189
190"Is there any work going/gone on/planned to enable exim to report delivery
191status notifications using RFC1892 multipart/report MIME messages? It would be
192great to have errors reported in a message/rfc822 attachment."
193
194Jeffrey Goldberg
195"I like plain bounces, so would hope that if you do this, that it be
196configurable. I think that even for those who want it, it shouldn't be very
197high on the wish list priority."
198
199Other suggestions: toggle for bounces/warnings; override max_return for
200certain addresses; use plain text if original not MIME. See Paul's hack
201for background of what to do.
202
203Nigel suggests using a specially named autoreply transport to generate bounces;
204people could then replace this with another transport (e.g. pipe) if they want
205to customize it themselves.
206
207Eli Chen posted an unconditional patch for 3.32 that does some of this work.
208That could form a basis.
209------------------------------------------------------------------------------
210
211(107) 12-Jul-1999 S defer transport at given load level
212Marc Haber
213
214------------------------------------------------------------------------------
215
216(108) 16-Jul-1999 S remote sort by numbers of recipients
217mark david mcCreary
218
219In the absence of remote_sort, sort remote domains by the number of recipients
220in each.
221------------------------------------------------------------------------------
222
223(114) 11-Nov-1999 S List of possible outgoing interfaces
224
225Allow the smtp "interface" option to be a list: try them in turn until one
226is found to work. Also allow masks to specify a range of addresses.
227------------------------------------------------------------------------------
228
229(123) 23-Dec-1999 L Use AUTH + TURN for dial-in hosts
230Andrew Tverdokhleb
231
232The way to do this would be to have Exim deliver messages into per-host
233directories in, say, BSMTP format. Accept TURN if authenticated, and cause it
234to run a helper program that is passed the socket in order to deliver the mail.
235Provide a helper program!
236------------------------------------------------------------------------------
237
238(125) 04-Jan-2000 L Use shared memory segment for queue list
239Theo Schlossnagle
240
241The idea is that a queue-runner that finds no existing shared segment should
242create one (if configured - possibly some fixed size) and all Exim processes
243should maintain a list of messages in it, thereby saving on directory scans
244when there are lots of messages. This needs a lot of careful thought to try to
245eliminate any possibility of data loss. The interlocking could be quite tricky.
246Further posters suggested using a db file to hold the list. See also 127.
247------------------------------------------------------------------------------
248
249(129) 14-Jan-2000 L Dynamically loadable lookup modules
250Steve Haslam
251
252Suggested patch provided.
253------------------------------------------------------------------------------
254
255(131) 17-Jan-2000 T Facility for assuming existence for EACCES
256Peter Radcliffe
257
258The opposite option for "+" in require_files: assume existence if cannot
259peer into the directory (+ assumes non-existence).
260------------------------------------------------------------------------------
261
262(131) 29-Feb-2000 M? Control total number of outgoing SMTP calls
263Brian White
264
265This is for hosts with slow connections. Could some modification of
266serialize_hosts be used for this? Or maybe use a semaphore? They seem to
267be quite widely available.
268------------------------------------------------------------------------------
269
270(132) 01-Mar-2000 S Lookup host name from outgoing interface
271Vadim Vygonets
272
273Instead of primary_hostname, look up the name for the interface that is being
274used for sending. Suggested patch supplied, but this should be an option of the
275smtp transport.
276------------------------------------------------------------------------------
277
278(133) 06-Mar-2000 S Filter option not to log "previously sent"
279Bruce Bowler
280
281This is when using the "log" option of the autoreply driver.
282------------------------------------------------------------------------------
283
284(134) 09-Mar-2000 S Option to remove attachments when bouncing
285------------------------------------------------------------------------------
286
287(136) 13-Mar-2000 S/M Option for aliasfile to suppress "me too"
288
289Could be tricky determining who "me" is.
290------------------------------------------------------------------------------
291
292(143) 08-May-2000 S Make quota_warn_threshold into a list
293David Carter
294
295So several warnings could be generated as the mailbox got bigger and bigger.
296------------------------------------------------------------------------------
297
298(146) 15-May-2000 M Allow SMTP error codes in retry rules
299
300This would allow special handling of certain errors from certain hosts. In
301particular, it would allow failing of certain 4xx codes.
302
303This is now available for 4xx responses to RCPT commands. Is anything more
75faf241
PH
304needed? Apparently, yes; there's been a request for a similar feature for MAIL
305commands.
e05f33e0
PH
306------------------------------------------------------------------------------
307
308(148) 15-May-2000 S Warn recipient if message rejected for quota excession.
309Heinz Ekker
310
311Maybe not all that small, because the possibility of retrying must be taken
312into account.
313------------------------------------------------------------------------------
314
315(149) 19-May-2000 L Make added headers visible in filters and other places
316Hans Morten Kind
317
318Headers added by directors/routers are not visible in subsequent processing.
319This is a request to make them visible. What about removed headers? This could
320be tricky to specify, hence the L.
321
322A separate but related issue is the effect of headers added by "unseen"
323directors. These are documented in chapter 19 as not being accumulated. Should
4990831e 324any change be made? See also Exim 4/333.
e05f33e0
PH
325------------------------------------------------------------------------------
326
327(155) 16-Jun-2000 M Special handling for certain hosts
328mark david mcCreary
329
330A means of changing the transport depending on the host name/IP of the most
331preferred MX record so that all domains that route to certain hosts can be
332handled specially. Maybe this could be a variable that is available in the
333expansion of the "transport" option.
334------------------------------------------------------------------------------
335
336(158) 29-Jun-2000 S Configure "From" in bounces
337Ben Parker
338
339Cf Reply-To.
340------------------------------------------------------------------------------
341
342(159) 07-Jul-2000 M Keep messages for fixed time
343Gary Palmer
344
345An option to keep messages on the queue for a specified time, even if all their
346destination hosts have timed out.
347------------------------------------------------------------------------------
348
349(164) 17-Aug-2000 S sender_unqualified_auth_hosts
350
351To allow authenticated hosts to send unqualified addresses. Presumably it
352needs received_... as well.
353------------------------------------------------------------------------------
354
355(167) 05-Sep-2000 L Support for ODBC
356
357This would allow access to databases that don't have native support built into
358Exim. See http://www.openlinksw.com/info/docs/rel3doc/unix/odbcsdk.htm
359------------------------------------------------------------------------------
360
361(168) 06-Sep-2000 M Deliver messages that alias to nothing to a given address
362Dr ZP Han
363
364If other people are managing alias lists, and one is empty, bounce that
365delivery to a given address rather than freezing the message. Use the errors_to
366address?
367------------------------------------------------------------------------------
368
369(172) 11-Sep-2000 S Allow file/directory in appendfile to override
370"Michael J. Tubby"
371
372When appendfile is called from forward or filter files, it ignores file or
373directory settings. Maybe they should override. The path set by the forward or
374filter is available in $address_file these days, so it could be used to create
375a longer path.
376------------------------------------------------------------------------------
377
378(173) 18-Sep-2000 S A way of doing lsearches with EOL terminated keys
379Jason Robertson
380
381This is for looking up things like subject contents. Probably need an option to
382exim_dbmbuild to make them into DBM files.
383------------------------------------------------------------------------------
384
385(174) 19-Sep-2000 S A way of using a different port for fallback hosts.
386Dean Brooks
387------------------------------------------------------------------------------
388
389(181) 10-Nov-2000 S Compile-time options for ignoring Sendmail options
390
391So that new ones could be accommodated easily.
392------------------------------------------------------------------------------
393
394(183) 04-Dec-2000 L dns_means_nonexist_after
395Dave C.
396
397In other words, wait a bit before giving up. This needs a mechanism for
398remembering, which is not currently available. To be borne in mind for the
399future.
400------------------------------------------------------------------------------
401
402(184) 04-Dec-2000 M Log more details of local caller
403J. Nick Koston
404
405"I was wondering if it was possible for exim to log the parent pid's cwd and
406exe when it is called from a script/invoked by actually running /usr/sbin/exim
407or /usr/sbin/sendmail." Question: is this information actually/easily
408available to Exim? Needs investigation.
409------------------------------------------------------------------------------
410
411(186) 19-Dec-2000 S A simple utility to reset a retry time
412Marc Haber
413
414Basically, to do what exim_fixdb "delete" can do, but straightforwardly. There
415could be an interface from eximon.
416------------------------------------------------------------------------------
417
418(187) 02-Jan-2001 M Wildcarding in headers_remove
419Tamas TEVESZ
420
421What I'd like to see is it to handle globs (or regexps, but i'm not sure this
422latter would worth the hassle), in a way like:
423
424 headers_remove = "X-*:Additional-header"
425------------------------------------------------------------------------------
426
427(188) 02-Jan-2001 S Make pipe timeout a temporary error
428Georg v.Zezschwitz
429
430A way to make a timeout into a temporary error.
431------------------------------------------------------------------------------
432
433(190) 03-Jan-2001 M Multiple message operations in eximon
434------------------------------------------------------------------------------
435
436(195) 19-Mar-2001 T TCP window size
437
438TCP window size for receiving/sending, SMTP client/server.
439------------------------------------------------------------------------------
440------------------------------------------------------------------------------
441
442
443
444------------------------------------------------------------------------------
445------------------------------------------------------------------------------
446----- Things that didn't make it into Exim 4 ------
447------------------------------------------------------------------------------
448------------------------------------------------------------------------------
449
450. An option to send messages to postmaster when ignore_errmsg_errors_after
451times out.
452
453. When an address is being routed, its constituents are in $local_part and
454$domain, but there is currently no variable that contains the whole thing. It
455could be put into $recipient, but that risks confusion with $recipients
456(which is available in system filters). Maybe $address could be used?
457
458. The ability to relay to host X without knowing all the domains that host X
459might have. At ACL time, one would need to verify the recipient, and determine
460that it routed to host X.
461
462. A new lookup library that operates on a specially prepared file of IP
463addresses and masks so that a single "lookup" yields a yes/no answer. This
464should be a freestanding thing - needs a utility to build the file from a list.
465
466. People want to change the wording of messages; can we find an efficient way
467of allowing this? (Maybe put all messages into a separate module?) The problem
468is not in the messages themselves, but in the values that get inserted into
469messages. Would have to invent a new kind of function that used identified
470values rather than positional ones. Use GNU gettext?
471
472. Invent lf_hosts for those that may use LF without CR. Any other RFC
473things we need to worry about?
474
475. A user would really like to see something similar, perhaps with
476"ID=$authenticated_id", similar to "helo=" and "ident=" in the default received
477header. BUT there are security issues. Maybe give it as a commented out option
478in the default configuration?
479
480. Consider expanding further options that take integer values. What about
481smtp_xxx options for different limits at different times of day (for example)?
482What about tls_advertise_hosts (so can look at incoming IP/port)?
483
484. How about a "hold hosts" option (cf hold_domains) to hold delivery to certain
485hosts?
486
487. Allow user filters to use "headers add", but probably not remove. Or maybe
488just implement "allow" options for both of these features.
489
490. Have the return from pipe in a variable, so that (e.g. error_message_file)
491can make use of it.
492
493. Implement randomize for ldap/sql servers.
494
495. Add an option for ETRN that says "wait for the command to finish, and use its
496stdout as the SMTP response."
497
498. -odsomething for "ignore retry when doing immediate delivery".
499
500. Add an option to the smtp transport to make it treat 5xx on connection as if
501it were 4xx. Or possible add a sophisticated "after command X, treat xxx as
502yyy".
503
504. A way of rewriting addresses in non-standard header lines such as
505Mail-Followup-To.
506
507. Global option to enable initgroups() for exim uid. Default off.
508
509. When verifying a sender, should it be rewritten with any T rewrites, because
510it would be so rewritten if it actually was a recipient in a message?
511
512. Sean Witham wants a way of defining macros that are not privileged, and a
513sort of #ifdef structure that allows for different configurations in the same
514file.
515
516. Allow :fail: to specify that 551 be used instead of 550. Maybe allow a code
517at the start, optionally? What about :defer:?
518
519. SMTP timeout in middle of receiving message: log sender address if known, and
520possibly message_id if known.
521
522. Make -brw show rewrites for transports too.
523
524. Have the MTA log destinations that have timed-out on a ident request and
525no longer send rfc1413_queries to them. Add an option for how not to cache
526these entries.
527
528. Options and/or a utility to enable non-privileged users to view the queue
529(e.g. -bpp), manipulate their own messages, etc.
530
531. Specify a port along with a host in a route_list.
532
533. A generalized "From" escaping scheme that also escapes >From so that the
534whole thing can be reversed.
535
536. There was a request for the \dns_again_means_nonexist\ option not to be
537instantaneous, but to operate only after the DNS has been giving "try again"
538for some time. Use the misc hints database.
539
540
541
542------------------------------------------------------------------------------
543------------------------------------------------------------------------------
544----- The Exim 4 Wish List ------
545------------------------------------------------------------------------------
546------------------------------------------------------------------------------
547
548(1) 01-Jan-02 U Use of dynamically loaded libraries.
549
550People want Exim to use dynamically loaded modules for a variety of reasons.
551When I started to create Exim, I never expected anything other than source
552distribution; the RPMs and inclusions in OS distributions caught me by
553surprise. I know very little about the mechanics of dynamic loading, but I'm
554aware that not all operating systems support it. I'm also aware that not all
555people support it!
556
557Furthermore, a way round this might be to supply more hooks along the lines of
558local_scan(). Then people can write their own dynamic loaders if they want.
559------------------------------------------------------------------------------
560
561(3) 01-Jan-02 U Test for over-quota at SMTP time
562
563This is a hard one, because the only way to test for over quota is to try to
564deliver a message, certainly if system quotas are being used. And also, the
565only available size at RCPT time is the SIZE option, though of course the test
566could be run at DATA time. I think maybe we leave this one to an external
567program, and require people to use ${run} to access the data. Let someone else
568figure out how to extract the current mailbox size!
569
570One suggestion is to implement
571
572 ${file_size:/path/to/file}
573 ${directory_size:/path/to/directory}
574
575so that explicit checks can be done. It may be necessary to have four
576operators, two being based on the block count, and two showing the "visible"
577size. Directory scanning is expensive; is there any scope for caching? It would
578seem not (you don't often get two addresses to the same user).
579------------------------------------------------------------------------------
580
e05f33e0
PH
581(6) 01-Jan-02 S Option to disable the use of -t
582Dave C.
583
584Would require work so that Exim itself doesn't use -t.
585------------------------------------------------------------------------------
586
587(7) 01-Jan-02 M Avoid showing LDAP passwords in log lines for LDAP errors
588John W Baxter
589
590May be tricky, because at the higher levels, the format of the query is not
591understood.
592------------------------------------------------------------------------------
593
e05f33e0
PH
594(9) 01-Jan-02 S Headers as well as body in file for autoreply
595Florian Laws
596------------------------------------------------------------------------------
597
598(10) 01-Jan-02 T Make "true" and "false" valid expansion conditions
599
600This might help with "and" and "or" when one of the sub-conditions is, for
601example, a lookup.
602------------------------------------------------------------------------------
603
604(11) 01-Jan-02 S Allow a filter to include another file.
605------------------------------------------------------------------------------
606
607(12) 01-Jan-02 M Support for different SQL servers per query
608
609In other words, the global mysql_servers etc. is too restrictive.
610------------------------------------------------------------------------------
611
612(14) 01-Jan-02 M? Support for Sendmail milters
613
614This could perhaps be done by extending the local_scan() idea and providing a
615"standard" module which interfaced to milter.
616------------------------------------------------------------------------------
617
618(15) 01-Jan-02 M More hooks like local_scan()
619
620One request has been for a similar hook at logging time. For other SMTP
0cf417c5 621interactions, maybe a hook into the ACL? See also 79 and 218 and 301.
e05f33e0
PH
622------------------------------------------------------------------------------
623
624(17) 11-Jan-02 M The construction of config.h needs refactoring
625
626This has been hacked about substantially since the original implementation.
627Given that there is a program (buildconfig), the messing around with the
628environment could be abolished. Also, the distinction between "yes" and "no"
629isn't always properly made (tests for #ifdef don't care about the value).
630------------------------------------------------------------------------------
631
632(18) 24-Jan-02 S Make $value retain its value after a top-level expansion
633
634This was specifically for use in filter files. Currently it reverts to empty
635as a consequence of save/restore for every lookup. It might be confusing to
636do otherwise, however.
637------------------------------------------------------------------------------
638
639(19) 29-Jan-02 L Use of multiple DBM libraries
640
641The problem is how to handle conflicting function names. Much research is
642needed.
643------------------------------------------------------------------------------
644
645(20) 29-Jan-02 S Make system filter refreeze after manual thaw
646
647Currently, a "freeze" in a system filter doesn't freeze after a manual thaw.
648------------------------------------------------------------------------------
649
650(21) 12-Feb-02 S Expand return_size_limit
651Joachim Wieland
652
653Is this really worth it? A per-transport value is also suggested - that would
654mean remembering the value with each failed address and taking a minimum or
655a maximimum (which?).
656------------------------------------------------------------------------------
657
658(24) 21-Feb-02 ? A way of testing TLS using -bh
659------------------------------------------------------------------------------
660
661(27) 06-Mar-02 M Distinguishing between different temporary callout errors
662
663The request was to distinguish between a 4xx error and a failure to connect.
664Problem is: how to cope when there is more than one host? Maybe only if ALL
665fail to connect. An option like /callout_no_connect_ok.
666------------------------------------------------------------------------------
667
668(30) 12-Mar-02 S Add "recipients" precondition to routers.
669
670This would avoid having to use "condition". (See also requirement for $address
671mentioned above.) However, it would also require adding a caching feature, and
672probably $recipient_data (cf $domain_data).
673------------------------------------------------------------------------------
674
675(31) 21-Mar-02 S Variables that indicate 8-bit message and 8-bit host, and
676 a way of using them to suppress a transport filter
677
678A variable that is set if the message contains 8-bit characters, and another
679that is set during the smtp transport if the host supports 8-bit. Then we also
680need a condition that's expanded in the transport to control whether the filter
681is run or not (e.g. transport_filter_condition).
682------------------------------------------------------------------------------
683
684(32) 22-Mar-02 M More info about callout fails for header sender verify
685
686When there's a callout failure for an envelope address, the error message
687contains details (by default) of the callout commands. This doesn't happen
688for addresses in the header because there may be more than one of them, and
689deciding how to give that information is tricky. Can we do better?
690------------------------------------------------------------------------------
691
692(33) 25-Mar-02 S Option to assume nomatch in dnslist lookups that time out
693
694Currently this causes a DEFER.
695------------------------------------------------------------------------------
696
697(34) 26-Mar-02 S Access to DNS lookup functions via local_scan() API
698
699This would make local_scan() writers lives easier for DNS usage.
700------------------------------------------------------------------------------
701
702(36) 02-Apr-02 ? A way of throttling, but allowing, relaying that would
703 otherwise be denied
704
705This was suggested in connection with anonymizing messages. The "wait" command
706in ACLs goes some way towards this. Is it enough?
707------------------------------------------------------------------------------
708
709(41) 17-Apr-02 T Make config.samples available as a directory for ftp
710
711This is so that people can browse individual samples directly.
712------------------------------------------------------------------------------
713
714(42) 23-Apr-02 T An option not to flatten newlines in $message_body.
715
716Or maybe better to provide $message_body_nl so as to have both.
717------------------------------------------------------------------------------
718
719(43) 23-Apr-02 T An option to treat 4xx as 5xx from STARTTLS
720
721This would make Exim retry in clear unless the host is in hosts_require_tls.
722------------------------------------------------------------------------------
723
724(44) 24-Apr-02 ? Use errors_to for timeouts after redirect syntax errors
725
726A syntax error in redirection data (with skip_syntax_errors false) causes a
727defer. Eventually, the address may time out. This suggestion is that, when it
728does, the bounce is sent to errors_to rather than to the sender.
729------------------------------------------------------------------------------
730
731(45) 13-May-02 T smtp_etrn_serialize_id = ....
732
733The default behaviour would be equivalent to
734
735 smtp_etrn_serialize_id = $smtp_command_argument
736------------------------------------------------------------------------------
737
738(47) 16-May-02 S Access to all addresses in batched local delivery
739Miquel van Smoorenburg
740
741In a batched local delivery with more than one recipient, there's no way to
742access the list of recipients for doing custom things, such as stuffing them
743all into a header. (BSMTP is the only approach; not everybody can use it.)
744Suggested patch supplied.
745------------------------------------------------------------------------------
746
747(48) 21-May-02 M Support for ATRN (server and client)
748Brian Candler
749
750Server: If Exim had the ability to accept an ATRN command and then simply
751invoke an external program, passing the SMTP stream on stdin and stdout and
752the authenticated id as a parameter, that would do the job nicely.
753
754Client: We need a variant of 'exim -bs' which would connect to a specified
755host, send AUTH/ATRN, and then accept incoming messages as usual.
756------------------------------------------------------------------------------
757
fc9c2317 758(50) 22-May-02 S? Add comment (duplicate address) to Envelope-To:
e05f33e0 759
fc9c2317
PH
760This is just to minimize the confusion some people have. However, it is not
761trivially easy to decide which to label as duplicates because of complications
762with redirection. I'm not convinced it will actually reduce confusion.
e05f33e0
PH
763------------------------------------------------------------------------------
764
765(51) 07-Jun-02 S Option to use another address in callout MAIL FROM
766
767This would be an address to try if MAIL FROM:<> failed. Is this actually going
768to be helpful? See also 101.
769------------------------------------------------------------------------------
770
771(53) 11-Jun-02 S Make local_scan() dynamically loadable
772
773David Woodhouse sent a patch. There's a more sophisticated one from Marc
774Merlin. (See also Peter Benie's comments.) But should the base Exim have all
775this in it?
776------------------------------------------------------------------------------
777
778(54) 11-Jun-02 S Ignore -Ac if called as mailq
779
780I am not sure if this makes sense. This flag requests a listing of a different
781mail queue, but Exim doesn't work like that. Is is not better for people to be
782aware of this?
783------------------------------------------------------------------------------
784
785(55) 13-Jun-02 M Rewriting whole header lines
786Dave C.
787
788Current rewriting rules apply to individual addresses in header lines. This
789feature would use a regex to match whole lines and replace them. It could be
790useful for patching up syntactically invalid lines from crappy clients, before
791the syntax check kicks in. (It might also be useful for hiding local host names
4990831e 792in Received: headers.) See also 333.
e05f33e0
PH
793------------------------------------------------------------------------------
794
795(58) 26-Jun-02 ? Extend PAM support
796
797Apparently PAM can do challenge-response authentication. The Exim interface
798can't handle this. Investigate and think about how to do this.
799------------------------------------------------------------------------------
800
801(59) 26-Jun-02 M A "custom" authenticator
802
803... that is simply a front end to external code. For example, there may be
804an external API that hides the user password and does CRAM-MD5 when passed the
805details of the challenge and response.
806------------------------------------------------------------------------------
807
808(60) 27-Jun-02 S Make trusted_users a local part list
809
810So that it can use lsearch etc.
811------------------------------------------------------------------------------
812
813(62) 28-Jun-02 S Remove headers before DATA ACL
814Patrice Fournier
815
816"I'd like to be able to give Exim a list of headers that must be removed
817from the message at arrival, before data_acl processing (and before the
4990831e 818rcpt_acl warn headers are added to the message)." See also 333.
e05f33e0
PH
819------------------------------------------------------------------------------
820
821(63) 28-Jun-02 S Access to ACL-added headers in ACLs
822Patrice Fournier
823
824"I'd like also to be able to look at the already added headers by a
825rcpt_acl when still checking rcpt_acl (either later in the acl for the same
4990831e 826RCPT TO or for another RCPT TO)." See also 333.
e05f33e0
PH
827------------------------------------------------------------------------------
828
829(65) 28-Jun-02 M Expand fallback hosts
830
831See also 174 of the Exim 3 list.
832------------------------------------------------------------------------------
833
834(66) 01-Jul-02 M Use Berkeley DB 4 concurrent access features
835
836This might give better performance on very busy sites by reducing the
837contention for access to hints databases. Rob Butler points out that this could
838also be useful to allow updates of other DB files used by Exim to happen
839concurrently. Another thing to think about with BDB is the possible use of
840B-trees.
841------------------------------------------------------------------------------
842
843(68) 01-Jul-02 S Add sender host to delivery line
844
845"Would it be possible to have a "sending_host_on_delivery" option that
846logs the IP of the sending host in the => line?" Also requested was amount of
847data transmitted for a non-delivery attempt.
848------------------------------------------------------------------------------
849
850(69) 03-Jul-02 T Log selector to log whoson checs
851Matt Bernstein
852
853"I'd quite like a log_selector option which could spot you'd done a whoson
854lookup in your DATA ACL and maybe log it as W=user."
855------------------------------------------------------------------------------
856
857(70) 09-Jul-02 S A way of changing the RCPT address in an accept router
858
859So as to avoid duplication problems when sending multiple addresses in multiple
860copies to the same address.
861------------------------------------------------------------------------------
862
e05f33e0
PH
863(74) 22-Jul-02 M Extend -bV to do more semantic checking
864
865For example, diagnose "local_hosts" that should probably be "+local_hosts".
866------------------------------------------------------------------------------
867
868(75) 23-Jul-02 S Reference option on command line
869
870The idea here is that a spam scanner that re-injects a message can supply a
871reference on the command line that gets logged with R=.
872------------------------------------------------------------------------------
873
874(78) 30-Jul-02 S Expand queue_only (and/or queue_only_file)
875
876The requirement is to make it possible to queue messages if certain conditions
877are met (e.g. messages from certain local users). See also 93.
878
879This control can now be achieved in the ACL - is this still needed?
880------------------------------------------------------------------------------
881
882(79) 31-Jul-02 S Additional info for log lines
883
884An option to set an expanded string to be added to <= lines. And also for the
885other delivery lines? See also 15.
886------------------------------------------------------------------------------
887
888(84) 09-Aug-02 S Make interfaces available in a variable
889
890Something like $local_interfaces. Maybe limit the max length.
891------------------------------------------------------------------------------
892
893(85) 12-Aug-02 S/M Notice database connection failures
894
895The small version of this just removes a server from the list within a single
896Exim process when a connection to it fails. The bigger project would use the
897retry database - but that has implications for bottlenecking and may not be
898helpful. See also item 109. Another suggestion is to randomize the order in
899which database servers are tried (randomize_database_servers). And another is
900to measure response times and remember which server is fastest.
901------------------------------------------------------------------------------
902
903(87) 12-Aug-02 M Partial lookups for query-style lookups
904
905The suggestion is to allow the lookup to contain a keystring (same syntax as
906single-key lookups) which is then permuted and place in a suitable variable
907each time - $permuted_key or something.
908------------------------------------------------------------------------------
909
910(88) 20-Aug-02 S Allow special retrying for forced defer
911
912See also 146 in Exim 3 wish list above.
913------------------------------------------------------------------------------
914
915(89) 20-Aug-02 S Also allow retry rules on routers and transports
916------------------------------------------------------------------------------
917
918(90) 23-Aug-02 M Macros with arguments, a la C
919
920I don't like this, because of the cost of frequent interpretation.
921------------------------------------------------------------------------------
922
923(93) 27-Aug-02 S queue_only_condition
924Peter A. Savitch
925
926queue_only_condition global option, expanded string. This contain
927condition, which if evaluated to `no' or `false' or `0', behaves like
928queue_only (queue_only_load ?). Don't know what to do is the string
929expansion fails with DEFER (either force queueing or continue with
930immediate delivery). Another option can control Exim behaviour if the
931expansion fails. Don't know how the name for it ;-) See also 78.
932
933This control can now be achieved in the ACL - is the new feature now needed?
934------------------------------------------------------------------------------
935
936(95) 27-Aug-02 S Log all parents as a router option
937
938So that specific addresses can be logged like this. Should there be more log
939selector options per router? Per transport?
940------------------------------------------------------------------------------
941
942(99) 28-Aug-02 L Test pre-conditions in order given
943
944This would get round certain problems with require_files. However, it is
945totally incompatible, and therefore an "Exim 5" wish.
946------------------------------------------------------------------------------
947
948(101) 02-Oct-02 M Callout and <> rejections
949
950Some people don't want to fail the callout if the MAIL FROM:<> command is
951rejected. Think of a way of handling this tidily. See also 51.
952------------------------------------------------------------------------------
953
954(102) 03-Oct-02 M Log option to suppress message-id logging
955
956M because it would involve a change to eximstats.
957------------------------------------------------------------------------------
958
959(106) 09-Oct-02 S Appendfile to create directory not as user
960
961Arrange for the setup entry to appendfile to create the directory under some
962other uid (and with given owners/permissions?)
963------------------------------------------------------------------------------
964
965(109) 15-Oct-02 M Remember when LDAP (etc) servers are down
966
967The idea would be to use some kind of retry rule, just like for hosts.
968See also 85.
969------------------------------------------------------------------------------
970
971(110) 18-Oct-02 M errors_to for pipe command in filter
972
973To work in the same was as errors_to for deliver commands.
974------------------------------------------------------------------------------
975
976(113) 15-Nov-02 M support for XMLRPC
977
978Patch supplied for 4.10 by Joel Vandal.
979------------------------------------------------------------------------------
980
981(114) 04-Dec-02 M local_scan: return message on accept
982
983(This actually dates from earlier.) The problem with this is that the string
984currently passes into $local_scan_data. Thus, an incompatible change of some
985sort would be required. Possibly a global that local_scan can set?
986------------------------------------------------------------------------------
987
988(118) 10-Dec-02 S access to Perl from local_scan
989------------------------------------------------------------------------------
990
991(119) 12-Dec-02 M ability to specify additional headers in an autoreply
992
993This is so that vacation messages etc can have MIME headers that specify, for
994example, the character set.
995------------------------------------------------------------------------------
996
997(125) 02-Jan-03 M Per-host daemon logging
998
999"So what I would like is an option like debug_hosts, that allows to specify
1000an hostlist, and if the current incoming/outgoing hosts matches, creates a
1001logfile like $hostname_(in|out).log in my logdirectory."
1002------------------------------------------------------------------------------
1003
1004(127) 06-Jan-03 M Different messages for different callout failures
1005
1006The real requirement here is to detect when a callout "MAIL FROM:<>" failed, so
1007that a specific warning about that can be sent, different to the message when a
1008callout "RCPT TO:" fails. I think this is in fact now mostly done.
1009------------------------------------------------------------------------------
1010
1011(129) 09-Jan-03 M Keep track of DNSBL timeouts, and refrain from calling
1012
1013If so configured, keep track of DNSBL timeouts in a hints record, and don't
1014retry that DNSBL for a while after (a sufficient number of) timeouts. It is
1015effectively disabled for a while. Log enable/disable, of course. Another
1016thought is an option not to apply +defer_unknown unless *all* DNSBL lookups in
1017a list defer.
1018------------------------------------------------------------------------------
1019
1020(130) 09-Jan-03 M A number of LDAP-related things
1021Peter A. Savitch
1022
1023OpenLDAP 2.1 is going to be more popular (2.1.9 is available with many
1024bug fixes). TLS-enabled LDAP is an interesting and usefull thing.
1025I can try to implement some things and send the patches, like with
1026ldapi.
1027
1028How do You see:
1029
10301) The propagation of TLS options (key, certificate, CA certificate)
1031 to the OpenLDAP library.
1032
10332) (was dereferencing; done in 4.23).
1034------------------------------------------------------------------------------
1035
1036(131) 09-Jan-03 S Additional variables
1037Peter A. Savitch
1038
1039$root_uid Why?
1040
1041(Some that were previously here are done)
1042
1043$smtp_accept_count -- used for acl_smtp_connect
1044
1045$queue_runners -- children of the listening daemon could use this
1046 value for controlling the number of queue runners
1047
1048I don't like either of these because they cannot be real-time values. They
1049would be snapshots of the values at the time the process was forked from the
1050daemon, and I fear they would just be confusing. For processes that were not
1051forked from the daemon they couldn't be set at all.
1052------------------------------------------------------------------------------
1053
1054(131) 09-Jan-03 S Additional options
1055Peter A. Savitch
1056
1057exim_processes_max
1058exim_file_descriptors_max
1059queue_run_condition -- to deprecate queue_run_max, better system
1060 load control
1061
1062Given Exim's distributed nature, I'm not at all sure how the first two of these
1063can usefully be implemented.
1064------------------------------------------------------------------------------
1065
1066(132) 16-Jan-03 M Option for when a transport filter fails (crashes)
1067
1068Freezing is one obvious option. Currently, Exim just retries. Another user
1069wanted to retry without the filter, but that is much harder.
1070------------------------------------------------------------------------------
1071
1072(136) 24-Jan-03 M Make "personal" available as a condition for use in routers
1073------------------------------------------------------------------------------
1074
1075(138) 28-Jan-03 M A variable containing what was matched in a host list
1076
1077Or, presumably, other lists. This is so that ACL messages can say things like
1078"your host name matches xxxx". Note: not the same as $domain_data. Also, this
1079could be tricky with lookups and things that match in files.
1080------------------------------------------------------------------------------
1081
1082(143) 06-Mar-03 L Ability to have multiple authenticators of same type
1083
1084For example, to have two PLAIN authenticators; if the first fails, try the
1085second.
1086------------------------------------------------------------------------------
1087
1088(144) 07-Mar-03 T ACL control = local_scan_skip to skip the local scan
1089
1090A bigger project would be control = local_scan <xxx> where xxx could select
1091different local_scan functions (possibly by dynamic loading).
1092
1093This can now be simulated using the fact that ACL variables are preserved,
1094so it doesn't look as it once did.
1095------------------------------------------------------------------------------
1096
1097(145) 07-Mar-03 T Export string_cat() to local_scan()
1098------------------------------------------------------------------------------
1099
1100(147) 17-Mar-03 T Option to treat 5xx as 4xx if received on initial connection
1101
1102This issue is controversial. That may be a good reason for not changing
1103anything.
1104------------------------------------------------------------------------------
1105
1106(153) 25-Apr-03 S A way of making log_as_local apply to the smtp transport
1107
1108Either an option on the transport, or log_remote_as_local for the router.
1109Messy, either way. Maybe log_local_as_local and log_remote_as_local, and
1110deprecate log_as_local?
1111------------------------------------------------------------------------------
1112
1113(154) 01-May-03 M Teergrubing at the CR/LF level
1114
1115It is believed that the most effective way to teergrube is to insert a delay
1116between transmitting CR and LF in the SMTP response. Furthermore, this is also
1117the best place to test for bad synchronization (i.e. at the last possible
1118time).
1119------------------------------------------------------------------------------
1120
1121(155) 01-May-03 S "control=no_pipelining" for connect and EHLO ACLs
1122
1123Yet more flexibility! Maybe this should be a more general control for what is
1124sent in response to EHLO.
1125------------------------------------------------------------------------------
1126
1127(156) 06-May-02 M Finer-grained synchronisation checking
1128
1129On operating systems that can be asked whether any sent bytes have not yet been
1130ACK'd at the TCP/IP level, a finer-grained check for proper synchronisation can
1131be done. All bytes must have been ACK'd if the client has received the previous
1132response before sending the next command. See also 293.
1133------------------------------------------------------------------------------
1134
1135(157) 07-May-03 M Newline as a list item separator
1136
1137This will make life easier for lists obtained form databases where the
1138separator is naturally a newline.
1139------------------------------------------------------------------------------
1140
1141(158) 13-May-03 M Ability to add to OK message for SMTP commands
1142
1143For sending reasons for slow response, etc.
1144------------------------------------------------------------------------------
1145
1146(160) 19-May-03 M Remove headers using wild cards
4990831e
PH
1147
1148See also 333.
e05f33e0
PH
1149------------------------------------------------------------------------------
1150
1151(162) 28-May-03 M/L Use of real numbers in filters, expansions, and options
1152
1153The motivation for this is for handling spam scores that are real numbers. The
1154questions are (a) how widely should it spread and (b) whether floating point or
1155fixed point representations should be used. And what about the eval operator?
1156------------------------------------------------------------------------------
1157
1158(164) 02-Jun-03 S Set variables for interface and port in smtp transport
1159
1160These could be useful for varying HELO data etc. See also several other
1161items about interfaces above.
1162------------------------------------------------------------------------------
1163
1164(166) 18-Jun-03 S CN verification in client TLS code
1165
1166A tls_verify_cn option is suggested by Sven Geggus.
1167------------------------------------------------------------------------------
1168
1169(168) 19-Jun-03 S Ability to add a header recording envelope rewrites
1170
1171Current code adds a deleted header with only some information. Maybe what is
1172needed is a flag for a rewrite rule.
1173------------------------------------------------------------------------------
1174
1175(169) 19-Jun-03 M A way of detecting timeouts in callout returns
1176
1177------------------------------------------------------------------------------
1178
1179(170) 23-Jun-03 S Option to accept rather than defer after local scan timeout
1180
1181Suggested patch supplied.
1182------------------------------------------------------------------------------
1183
1184(171) 23-Jun-03 S Option to make timeout a soft failure on pipe transport
1185
1186------------------------------------------------------------------------------
1187
1188(172) 23-Jun-03 M Option to make SQL query to specific server
1189
1190------------------------------------------------------------------------------
1191
1192(175) 04-Jul-03 S show_all_ancestors_in_errmsg for the redirect router
1193
1194This is the opposite of hide_child_in_errmsg in effect.
1195------------------------------------------------------------------------------
1196
1197(180) 14-Jul-03 M Extend never_users to be more flexible
1198
1199e.g. never_users = ! mailnull : ! cyrus : !mailman : 0-100
1200------------------------------------------------------------------------------
1201
1202(183) 16-Jul-03 S freeze_tell_text to add custom text to the message
1203
1204------------------------------------------------------------------------------
1205
1206(185) 24-Jul-03 S An expansion operator that decodes RFC 2047 strings
1207
1208------------------------------------------------------------------------------
1209
1210(188) 13-Aug-03 T batch_max=0 to mean unlimited
1211
1212------------------------------------------------------------------------------
1213
1214(189) 22-Aug-03 S Allow filter "logwrite" to write to syslog
1215
1216I feel this is a dangerous facility, and also of very minority interest, at
1217least for user's filters. Allowing a system filter to write to mainlog or
1218syslog may be different. However, writing the main log would only be possible
1219if the filter runs as root or exim.
1220------------------------------------------------------------------------------
1221
1222(190) 22-Aug-03 S A way of testing "forced delivery" in filter and routers
1223------------------------------------------------------------------------------
1224
1225(191) 26-Aug-03 M Preserve $address_data for a verified recipient
1226
1227The idea is to preserve it in the recipients data structure so that local_scan
1228can have access to it. The value could also be used as the initial value of
1229$address_data while routing.
1230------------------------------------------------------------------------------
1231
1232(192) 05-Sep-03 M Better handling of TXT records for dnslists
1233
1234When multiple lists are accessible via a merged lookup, handling TXT records
1235is difficult. An option for doing the TXT lookup in a sub-list has been
1236suggested, with syntax such as
1237
1238 dnslists = list.example.org=127.0.0.2%dialups \
1239 ,127.0.0.3%relays \
1240 ,127.0.0.5%spews
1241------------------------------------------------------------------------------
1242
1243(194) 10-Sep-03 M $addresslist_data to be like $host_data/$domain_data
1244
1245------------------------------------------------------------------------------
1246
1247(195) 29-Sep-03 M A variable containing the error for verify = header_syntax
1248
1249Maybe there should always be a variable with the error message for all the
1250different kinds of verify failure.
1251------------------------------------------------------------------------------
1252
1253(196) 30-Sep-03 S A way of detecting whether it was HELO or EHLO in the ACL
1254
1255$received_protocol isn't reset until after the command is accepted (which
1256seems right), and $smtp_data shows only the arguments. Maybe $smtp_command?
1257------------------------------------------------------------------------------
1258
1259(197) 30-Sep-03 S MACROS_DROP_PRIVS and ALT_CONFIG_DROP_PRIVS
1260
1261Now that alternative configurations can be restricted to certain directories,
1262some more flexibility can be allowed. Not by default, though.
1263------------------------------------------------------------------------------
1264
1265(198) 01-Oct-03 M Accept mail after local_scan() crash instead of defer
1266
1267This may not be as easy to implement as it sounds; one is never sure of the
1268environment after a crash. Is is actually a good idea? The crashing local_scan
1269may have wrecked the memory in arbitrary ways; for example, screwing up the
1270recipients list...
1271------------------------------------------------------------------------------
1272
1273(199) 01-Oct-03 M ${pipe which will pipe the message to a script ...
1274
1275... and otherwise behave as ${run. Probably needs to have locking out features
1276so that it can be turned off for users .forwards if the sysadmin so desires.
1277------------------------------------------------------------------------------
1278
1279(200) 07-Oct-03 L Alternative ways of storing hints
1280
1281People want to store hints in databases. Some assert that SQL databases can
1282be made to perform satisfactorily. If a general interface could be worked on,
1283people could at least try different strategies. See also 66 above, which is
1284specifically concerned with Berkeley DB. Another possible option is a switch to
1285disable smtp-wait hints - to avoid contention problems.
1286------------------------------------------------------------------------------
1287
1288(201) 07-Oct-03 M A "soft bounce" feature
1289
1290This is an option that turns all hard bounces into soft bounces. The idea is
1291that it can be used as a safety-net while testing configurations. Instead of a
1292local bounce, the message stays on the queue; instead of 5xx SMTP responses,
12934xx ones are given.
1294
1295The ability to do the opposite - turn 4xx into 5xx under certain circumstances
1296might also be useful (e.g. after a certain time). This might best be done by
1297extending the retry logic to recognize 4xx as a special error. (This is now
1298done.)
1299------------------------------------------------------------------------------
1300
1301(202) 10-Oct-03 S -bvsomething to do a callout after the verify
fb636a0f
PH
1302
1303For example: -bvc and -bvsc. The problem now (Nov 04) is that there are quite a
1304few possible callout options that can be specified in an ACL, and they would
1305have to be replicated here.
e05f33e0
PH
1306------------------------------------------------------------------------------
1307
1308(203) 14-Oct-03 S verify=something to easily check for header presence
1309
1310This is purely cosmetic; "condition" can already be used.
1311------------------------------------------------------------------------------
1312
1313(204) 27-Oct-03 S an inverted queue_only_file
1314
1315That is, queue if a file does NOT exist.
1316------------------------------------------------------------------------------
1317
1318(205) 27-Oct-03 S expand smtp_accept_queue_per_connection
1319
1320------------------------------------------------------------------------------
1321
1322(206) 27-Oct-03 S appendfile: a variable containing the maildir base name
1323
1324------------------------------------------------------------------------------
1325
1326(207) 29-Oct-03 S ability to keep trusted users in a file - expand it.
1327------------------------------------------------------------------------------
1328
1329(208) 31-Oct-03 M cache temporary verification errors and fail after a time
1330
1331This request was for a way of turning temporary verification failures into
1332permanent ones after some fixed time.
1333------------------------------------------------------------------------------
1334
1335(209) 31-Oct-03 S a way of making crashes in pipe commands temporary errors
1336
1337------------------------------------------------------------------------------
1338
1339(210) 31-Oct-03 S runtime option to change the daemon name used for tcprwappers
1340
1341A patch for compile time was supplied, but this seems better as a runtime
1342option, for use with multiple Exim daemons.
1343------------------------------------------------------------------------------
1344
1345(211) 31-Oct-03 S ability to disable debugging output from -bh & -bhc
1346------------------------------------------------------------------------------
1347
1348(212) 31-Oct-03 M specify headers lines in HELO ACL to be added to all msgs
4990831e
PH
1349
1350See also 333.
e05f33e0
PH
1351------------------------------------------------------------------------------
1352
1353(214) 05-Nov-03 S Put the wild part of local part prefix/suffx in variables
1354
1355Unfortunately, this isn't quite as trivial as it seems.
1356------------------------------------------------------------------------------
1357
1358(215) 14-Nov-03 S A way of turning off message-submission fix-ups
1359
1360Globally, and perhaps also via an ACL control so that it can be done on a
fb636a0f
PH
1361per-message basis. Is this still needed? Since this item was added to this
1362list, default fixups for non-local messages have been removed, and control =
1363submission has been added.
e05f33e0
PH
1364------------------------------------------------------------------------------
1365
1366(215) 26-Nov-03 M/L Conversion of IDNA domain names for logging
1367
1368IDNA (RFCs 3490-3492) converts domains names containing non-ASCII characters
1369into ASCII strings of a special form. Exim will of course handle these.
1370However, it might be nice to convert them to a local code for logging. This
1371might be quite a big project: there's also output from -bp and eximon queue
1372display and no doubt other places as well. (Utilities that process the logs,
1373e.g. exigrep, eximstats, will be automatically handled if the logs are
1374changed.)
1375------------------------------------------------------------------------------
1376
1377(216) 27-Nov-03 S Option to bounce if required TLS doesn't happen
1378
1379This is for the smtp transport with hosts_require_tls set. Currently, it
1380defers. Possibly the best approach is to make the error one that can be seen by
1381the retry logic.
1382------------------------------------------------------------------------------
1383
1384(217) 27-Nov-03 M A function to pass back variables from Perl
1385
1386This is a function that can be called from Perl, to take a name and a value and
1387put that value into an Exim variable.
1388------------------------------------------------------------------------------
1389
1390(218) 01-Dec-03 M A local_scan-like hook at system filter time
1391
1392That is, make a C API available for custom filtering at this point.
1393------------------------------------------------------------------------------
1394
1395(221) 18-Dec-03 U Merge routers and ACLs - or at least make more similar
1396
1397"It will be very useful to be able to use most of the ACL conditions
1398(authenticated, hosts, senders, sender_domains, ... ) in routers and also the
1399possibility to have multiple conditions in routers. It will be great to also
1400be able to set variables in routers like in acl's." This is effectively a
1401radical suggestion for a complete re-design, and is therefore BIG.
1402------------------------------------------------------------------------------
1403
e05f33e0 1404(223) 22-Dec-03 S Support SOA lookup in dnsdb lookups
fb636a0f
PH
1405
1406This could be like zns, and climb up the tree till it hits a zone. Would the
1407name of the zone be required?
e05f33e0
PH
1408------------------------------------------------------------------------------
1409
1410(225) 22-Dec-03 M Add acl= to routers
1411
1412This would use an ACL to "control access" to a router, opening up a number
1413of interesting possibilities. Details of possible limitations need to be
1414investigated.
1415------------------------------------------------------------------------------
1416
1417(226) 23-Dec-03 S A way of treating DEFER as fail in dnsdb lookups
1418
1419(i.e. the dnsdb lookup failed, so accept the message)
1420------------------------------------------------------------------------------
1421
1422(227) 30-Jan-04 M A configuration .if facility
1423
1424"Second with the .ifdef and such, it would be nice to have a base .if,
1425so I could do something like
1426.if DEFINED_DATA == xyz
1427configuration here
1428.elseif DEFINED_DATA == abc
1429configuration here
1430.else
1431configuration here
1432.endif
1433also this would be nice at least in my case in the system filters, but
1434isn't required but you could pass the defined data to the system, in
1435variables."
1436------------------------------------------------------------------------------
1437
1438(229) 30-Jan-04 M New expansion mechanism: {list ...}
1439
1440"Proposed syntax: {list {separator}{item}{item}...}
1441This first expands the contents of {separator} and all of the {item}s,
1442then constructs a separator-delimited list. The twist is: if an {item}
1443generates the empty string, no separator will be generated for it.
1444The entire construct will fail is {separator} fails, or all {item}s
1445fail. If just some {item}s fail, they will be treated as if they
1446generated empty strings.
1447Examples:
1448 {list {,}{aaaaaa}{bbbbbb}{cccccc}} -> aaaaaa,bbbbbb,cccccc
1449 {list {,}{:fail:}{bbbbbb}{cccccc}} -> bbbbbb,cccccc
1450 {list {,}{aaaaaa}{:fail:}{cccccc}} -> aaaaaa,cccccc
1451 {list { }{aaaaaa}{bbbbbb}{}} -> aaaaaa bbbbbb
1452 {list { }{:fail:}{:fail:}{:fail:}} -> :fail:
1453 {list {:fail:}{aaaaa}{bbbb}{cccc}} -> :fail:
1454See particularly examples 2-4, which handle the case of a missing first
1455and last item with ease; doing this using {if ...} would be quite difficult!"
1456------------------------------------------------------------------------------
1457
1458(230) 30-Jan-04 M Find IP addresses of a domain's nameservers
1459
1460This needs some way of processing a list of things in a similar way, which
fc9c2317
PH
1461should perhaps be a more general facility. // This can now be done using the
1462list facilities of dnsdb; verbose, but it can be done. //
e05f33e0
PH
1463------------------------------------------------------------------------------
1464
1465(231) 30-Jan-04 ? -C has a number of problems when used for real
1466
1467-C was intended for testing; people are using it for "alternate"
1468configurations, and it doesn't work too well. Can a better way of doing this be
1469invented?
1470------------------------------------------------------------------------------
1471
1472(232) 02-Feb-04 ? Make parts of the code loadable
1473
1474The idea being that drivers, etc. could be compiled separately. There are, of
1475course, security issues. This is not something I want to go into at present.
1476------------------------------------------------------------------------------
1477
1478(235) 02-Feb-04 T Make smtp_accept_count available as a variable
1479
1480This is for use in ACLs. Of course, it is a snapshot of the count at the
fc9c2317
PH
1481start of the receiving process. As such, it could be confusing because if a
1482connection lasts a long time, the "true" value could be very different. For
1483this reason, I don't really like this idea.
e05f33e0
PH
1484------------------------------------------------------------------------------
1485
1486(236) 02-Feb-04 S String in local_scan that's added to the binary version string
1487------------------------------------------------------------------------------
1488
1489(237) 02-Feb-04 M Add_header in ACLs because "message" is overloaded
1490
4990831e
PH
1491This would be useful for verbs where "message" is an error message. See also
1492333.
e05f33e0
PH
1493------------------------------------------------------------------------------
1494
1495(238) 05-Feb-04 S ${address to handle multiple addresses
1496
1497At present, ${address expects to see just one address. An extension would let
1498it handle header lines with multiple addresses, just retaining the actual
1499addresses. Or perhaps a new operator is needed?
1500------------------------------------------------------------------------------
1501
1502(239) 23-Feb-04 ? Expansion items for encryption/decryption
1503
1504Perhaps for some kind of cookie handling? This would need an external crypto
1505library, because there's no crypto code in Exim itself.
1506------------------------------------------------------------------------------
1507
1508(240) 23-Feb-04 ? Some way to know if a ip is a mx for a given domain
1509
1510Some kind of iterative operation for dnsdb might be a general way of providing
fc9c2317
PH
1511this. // This can now be done using the list facilities of dnsdb; verbose, but
1512it can be done. //
e05f33e0
PH
1513------------------------------------------------------------------------------
1514
1515(242) 01-Mar-04 ? Run a filter from an expansion condition
1516
1517This would add a lot of power to ACLs, but its implementation might be tricky
1518because of the possibility of recursion.
1519------------------------------------------------------------------------------
1520
1521(243) 01-Mar-04 ? Run an ACL from an expansion condition
1522
1523The problem here is knowing what data is available at an arbitrary time.
1524------------------------------------------------------------------------------
1525
1526(244) 01-Mar-04 ? Add an on-success event to transports
1527
1528This could just be an expansion string, whose value is either ignored or
1529logged, but it could be used to run SQL updates or run programs etc.
1530However, what is "success" when a transport has multiple recipients?
1531------------------------------------------------------------------------------
1532
1533(245) 01-Mar-04 M Add all the string expansion conditions to filters
1534
1535Some thought would be needed on how to design the syntax for this.
1536------------------------------------------------------------------------------
1537
1538(247) 09-Mar-04 S IP addresses that are never looked up
1539
1540It would be nice if we could prevent this for certain IP addresses for
1541which we _know_ we'll never get a valid PTR record, like 2002::/16.
1542So a new option might reasonably default to:
1543
1544 hosts_never_lookup = <; 2002::/16
1545------------------------------------------------------------------------------
1546
1547(253) 05-Apr-04 M Use ESMTP and TLS for recipient callout verification
1548
1549The best way to do this would involve quite a bit of refactoring so as to
1550abstract some of the code from the smtp transport into subroutines that could
1551also be used from the callout code. The tls parameters should probably be
1552taken from the transport. That might also require some substantial code
1553refactoring. See also 294.
1554------------------------------------------------------------------------------
1555
1556(260) 30-Apr-04 S Respect +tls_cipher +tls_peerdn in rejectlog entries
1557
1558------------------------------------------------------------------------------
1559
1560(261) 05-May-04 S Add a "required_version" option
1561
1562So that configurations can insist on a specific Exim version.
1563------------------------------------------------------------------------------
1564
1565(262) 10-May-04 S Add "scratch" ACL variables
1566
1567The idea is for variables that are flushed at the start of each ACL. I'm not
1568really convinced that these are worth implementing.
1569------------------------------------------------------------------------------
1570
1571(263) 10-May-04 S Add variable $router_name $transport_name
1572
1573These could be used in debug_print settings, which are output during -bt, and
1574thus don't need the privilege to run with -d.
1575------------------------------------------------------------------------------
1576
1577(265) 25-May-04 M An init.d script for exim is needed
1578
1579The old sendmail script used to "just work" because it just did -bd -q 20m or
1580whatever. Newer versions start more than one sendmail daemon, so do not work.
1581------------------------------------------------------------------------------
1582
1583(267) 25-May-04 S tarpitting delay option
1584
1585A modifier that sets a delay between lines for multiline responses.
1586------------------------------------------------------------------------------
1587
1588(268) 25-May-04 S? Add a PID to every log line
1589
1590Given that pids are reused non-cyclically these days, is this actually useful?
1591------------------------------------------------------------------------------
1592
e05f33e0
PH
1593(270) 01-Jun-04 M Add headers at top and middle
1594
1595Various initiatives like SPF and DomainKeys require header lines to be added
1596above or in the middle of existing headers. Exim always adds at the bottom.
1597When these requirements are more standard and clearer, some way of controlling
1598where header lines are added will probably become necessary. Some new syntax
1599will be required.
1600
1601This can now be done fairly generally from local_scan(), and at the start and
4990831e 1602after the Received: block from an ACL. Is anything more needed? See also 333.
e05f33e0
PH
1603------------------------------------------------------------------------------
1604
1605(271) 02-Jun-04 L Callouts at routing time
1606
1607From a user's message:
1608
1609> I would like to be able to:
1610>[...]
1611> 2) Forcing callouts as address verification at router level
1612> [ check_callout just like check_local_user ]
1613>
1614> I would like to redirect messages in some domain to "domain with callout
1615> verification" and to "domain without callout verification"
1616>
1617> e.g.
1618> userA@domain.in -> userX@doamin.out-verify (use callout to verify)
1619> userB@domain.in -> userY@doamin.out-noverify (do not use callout verify)
1620>
1621> [both out-* domains delivered via "callout ready" transports]
1622
1623Other versions of the wish:
1624* limiting callouts in acls to specific transport
1625 verify = recipient/callout=5s,transport:intranet_smtp
1626* adding "select transport" to ACL conditions
1627 accept domains = +local_domains
1628 transport = cyrus_ltcp
1629 verify = recipient/callout=5s
1630------------------------------------------------------------------------------
1631
1632(272) 07-Jun-04 S Expand hosts_randomize
1633
1634It occurs in manualroute and in smtp.
1635------------------------------------------------------------------------------
1636
1637(278) 21-Jun-04 M quota_warn_message_file option
1638
1639Similar to the bounce and delivery warn message files.
1640------------------------------------------------------------------------------
1641
1642(280) 23-Jun-04 M A way of adding a header line after callout defer_ok
1643
1644This would record that, e.g., a sender domain verified, but the callout
fb636a0f
PH
1645could not be done. There are ways of fudging this, using ACL variables and
1646"warn" statements.
e05f33e0
PH
1647------------------------------------------------------------------------------
1648
1649(285) 16-Jul-04 M Separate and independent log_selector for rejectlog
1650
1651For example: mainlog_selector and rejectlog_selector, with log_selector setting
1652both of them.
1653------------------------------------------------------------------------------
1654
1655(286) 21-Jul-04 M Distinguishing a larger number of errors
1656
1657For instance, detecting "connection reset by peer" (ENETRESET or ECONNRESET)
1658might be useful.
1659------------------------------------------------------------------------------
1660
1661(288) 10-Aug-04 M Option for verify to require MX
1662
1663e.g. verify=sender/require_mx
1664I'm not too keen because this is rather special purpose, and of course could
1665only apply if the verification happened to hit a dnslookup router.
1666------------------------------------------------------------------------------
1667
1668(289) 10-Aug-04 L Option to treat defers in database lookups as "not found"
1669
1670This is so that alternatives can be coded for when databases are down. A
1671suggested patch has been sent, but it just catches all instances of "defer"
1672from a lookup in an expansion string. These can occur for a number of different
1673reasons, not just connection failures. I think that we need a specific
1674"connection failed" indicator. Also, what about lookups in lists?
1675------------------------------------------------------------------------------
1676
1677(291) 13-Aug-04 M An ACL or "local_scan()" to be run on size excession
1678
1679The idea is to give something a chance to look at the data so far received when
1680more than message_size_limit (or some other limit) has arrived. I am not sure
1681how useful this would actually be in practice.
1682------------------------------------------------------------------------------
1683
1684(292) 13-Aug-04 M Overall timeout for message reception
1685
1686A client could in priciple keep an SMTP connection open for a very long time by
1687trickling in data very slowly. Also, after message_size_limit is exceeded, Exim
1688continues to swallow the data (though it does not write it to disk) until the
1689end is reached. Again, the connection could be held open for a very long time.
1690Some kind of overall time limit for an SMTP connection, possibly reset at the
1691start of each message, might be helpful in these situations.
1692------------------------------------------------------------------------------
1693
1694(294) 23-Aug-04 L Callouts and AUTH and LMTP
1695
1696People want to do callouts using LMTP as well as SMTP, and that would also
1697include sockets as well as TCP/IP connections. Also, people want to make use of
1698AUTH during the callout checking, on all types of connection. I suppose that
1699means making TLS available as well. This probably means a rewrite of the code
1700that actually does the callout. Should we use the relevant transport in a new
fdfdba09 1701"callout" mode instead of keeping things separate? See also 253 and 323.
461f4862
PH
1702
1703And here's another submitted idea: "My actual suggestion is that if this model
1704is followed, the parent process doesn't have to stop the callout process if it
1705is taking too long to respond: it can return 450 to the incoming connection
1706within the 5 minute SMTP command timeout and leave the callout process to
1707continue, in the hope that it will eventually get a result and store it in the
1708callout cache in time for the sender's next attempt."
e05f33e0
PH
1709------------------------------------------------------------------------------
1710
1711(296) 09-Sep-04 S Make deliver_time work for == lines as well as =>
1712
1713What about ** lines?
1714------------------------------------------------------------------------------
35f53bf6 1715
35f53bf6
PH
1716(299) 25-Oct-04 S Options to make Sieve "keep" pass to next router
1717
1718Currently, "keep" saves in the mailbox. Probably need two options, for implicit
1719and explicit keep commands.
1720------------------------------------------------------------------------------
1721
0cf417c5
PH
1722(301) 27-Oct-04 M Use an "ACL" to filter logging
1723
1724This idea was for ACL syntax to be able to "accept" or "deny" individual log
1725lines. This would make it possible to have, for example, per-host logging for
1726certain things. See also 15 above.
1727------------------------------------------------------------------------------
32aaebb6
PH
1728
1729(302) 28-Oct-04 M Expand pass_router and redirect_router
1730
1731Doing this would mean postponing the validity checks till the router was
1732actually used instead of doing them at start up. It does not seem to be a
1733facility that will be widely used.
1734------------------------------------------------------------------------------
1735
1736(303) 28-Oct-04 M Support SQL relay
1737
1738This would make it easier for packagers to support "generic SQL" without having
1739to choose which one. It can be slotted in using a MySQL interface without
1740modifying Exim, but native support would be nice.
1741------------------------------------------------------------------------------
1742
1743(304) 02-Nov-04 M A way of seeing the whole message in Perl or ${run
1744
1745At present, the headers are available in $message_headers, but only part of
1746the body is visible. The only way to pass the whole body would be as a file
1747descriptor because it can be very large. See also (42).
1748------------------------------------------------------------------------------
1749
1750(305) 02-Nov-04 M A Perl transport
1751
1752The suggestion here is that an embedded Perl function takes responsibility for
1753doing the delivery. I am not at all keen on this. One way of doing it would be
1754to implement (244), which provides an "on success" string expansion. Then
1755anyone who wants this could run that on a transport that does nothing.
1756------------------------------------------------------------------------------
b5c45968
PH
1757
1758(306) 09-Nov-04 M Make the search type partial-lsearch*@ be useful
1759
1760At present, it treats the whole key as a domain for the partial search, then
1761does the *@ thing. A more sensible plan would be something like:
1762
1763 user@company.com
1764 *@company.com
1765 user@*.company.com
1766 *@*.company.com
1767 *
1768
1769That is, try the local part and * at each of the partial domain values.
1770------------------------------------------------------------------------------
5b1fde4d
PH
1771
1772(307) 24-Nov-04 S Check the syntax of Message-ID: header lines
1773
1774This could be added to "verify=header_syntax" or, if the incompatibility is
1775felt to be too great, an additional condition, or a sub-option, could be added.
1776------------------------------------------------------------------------------
908acc4e
PH
1777
1778(308) 24-Nov-04 S Add $body_longlinecount and $header_longlinecount
1779
1780These variables would hold the number of physical lines in the body and header
1781that were longer than 998 bytes. This would be fiddly to implement because of
1782the way Exim currently reads the input. It isn't just a trivial patch.
1783------------------------------------------------------------------------------
a78fb8ef
PH
1784
1785(309) 01-Dec-04 S/M Queue runners should get locks before forking
1786
1787If a queue-runner opened the -D file and took out the lock before forking, it
1788would waste fewer resources if the message was already being delivered. But how
1789often would this actually matter in practice?
1790------------------------------------------------------------------------------
fbbf1e99
PH
1791
1792(310) 06-Dec-04 S After "personal" save what matched
1793
1794The idea is to save the email address that actually was found in the message
1795in a variable so it can be used (e.g. as the From: address in an autoreply).
1796------------------------------------------------------------------------------
59e88703
PH
1797
1798(311) 07-Dec-04 ? More flexible SMTP response codes
1799
1800The requestor wanted to be able to specify, for example, 551 in an ACL deny
1801instead of 550, and also vary the defer code. The first digit, however, should
1802remain fixed. In addition to main codes, enhanced status codes (RFC 2034) were
1803requested. (As far as I can tell, they have never been highly popular.)
1804------------------------------------------------------------------------------
f7b63901
PH
1805
1806(312) 10-Dec-04 ? Shadow remote transports
1807
1808Unless a lot of work is done, this would be restricted to another remote
1809transport. A similar effect could therefore be achieved with "shadow_hosts"
1810which are like fallback_hosts but which operate on success.
1811------------------------------------------------------------------------------
23fd96b1
PH
1812
1813(313) 21-Jan-05 ? Multiple queues
1814
1815Exim runs poorly if its queue gets too big. Various ways round this are all
1816to some extent kludges. There has been a suggestion of using multiple
1817directories instead of just "input". (Originally it was for a whole set of
1818spool directories, but that introduces complications with the hint files.)
1819On message arrival, somehow a selection of "input" must be made. Then queue
1820runners must be startable for the different "queues". Don't forget that the
1821"msglog" directory is also involved. Perhaps add a new level of indirection:
1822/var/spool/exim/queue1/{input,msglog}, /var/spool/exim/queue2/....
1823------------------------------------------------------------------------------
7163d8cf
PH
1824
1825(314) 15-Feb-05 M Multiple headers_{add,remove} for routers
1826
1827If headers_{add,remove} could be specified multiple times, it would be easier
4990831e
PH
1828for those people that construct configs using .ifdef or .include, etc. See also
1829333.
7163d8cf 1830------------------------------------------------------------------------------
54a4fbd5
PH
1831
1832(315) 15-Feb-05 M String variables for use in filters.
1833
1834Currently, only numerical variables are supported.
1835------------------------------------------------------------------------------
46c23dba
PH
1836
1837(316) 21-Feb-05 M Put callout response into a variable
1838
1839When a callout fails, put the entire SMTP response into a variable. This is not
1840trivial because we probably should retain it in the cache as well.
1841------------------------------------------------------------------------------
a6c11ddf
PH
1842
1843(317) 25-Feb-05 S Delete the pid file when the daemon exits
1844
1845At least try to catch some of the exit routes from the daemon and either delete
1846or empty the pid file.
1847------------------------------------------------------------------------------
09a23feb 1848
6758c780 1849(318) 02-Mar-05 S Add current connection count to daemon's exiwhat output
09a23feb 1850------------------------------------------------------------------------------
6758c780
PH
1851
1852(319) 03-Mar-05 ? Allow file rather than directory for scanning call
1853
1854"I can call arbitrary scanning software by specifying the full path. I can pass
1855a directory to be scanned in the arguments. I'd like to be able to pass a
1856specific file name instead of a directory. I think this would allow me to call
1857Bogofilter at smtp time. Bogofilter requires a filename, not a directory. The
1858file would contain the complete email. I suppose there may be other scanning
1859solutions with a similar requirement."
1860------------------------------------------------------------------------------
1861
45b1794b
PH
1862(321) 07-Mar-05 S Run an ACL on a sync error
1863
1864... and possibly "accept" or "deny" it.
1865------------------------------------------------------------------------------
596875b3
PH
1866
1867(322) 15-Mar-05 M Add a /defer_ok option to verify=reverse_host_lookup
1868------------------------------------------------------------------------------
fdfdba09
PH
1869
1870(323) 15-Mar-05 M Make callouts use smtp_data from the smtp transport
1871
1872This is yet another problem caused by duplicating the SMTP code between the
1873transport and the callout verification. See item 294 above. Merging the
1874transport and the callout code could prevent this kind of thing from happening.
1875------------------------------------------------------------------------------
fb6f3d5c
PH
1876
1877(324) 04-Apr-05 ? Make -bP show ACLs
1878
1879This is in the Bugzilla as #10.
1880------------------------------------------------------------------------------
4e714aed 1881
f331f3b6
PH
1882(326) 03-May-05 ? Queue-only on memory shortage
1883
1884This is bugzilla #17. The idea is to have something like queue_only_load that
1885triggers on a shortage of main memory.
1886------------------------------------------------------------------------------
f0884f39
PH
1887
1888(327) 06-May-05 ? Break delay if connection drops
1889
1890Currently, "delay=5m" (e.g.) waits for 5 minutes. If we can detect that the
1891connection has died in the meantime, it would make sense to break the delay.
ec798043
PH
1892However, it doesn't seem possible to detect a dropped connection without trying
1893to read from it.
f0884f39 1894------------------------------------------------------------------------------
22907b39 1895
c9f149f5 1896(328) 10-May-05 S After "unseen" routing, pass on header additions/deletions
22907b39
PH
1897
1898Currently, when an "unseen" router accepts an address, header additions and
1899deletions stick with that address, and the "clone" address that continues to be
1900routed starts off without any additions or removals. This request is for an
1901option to select other actions: retain header actions with the clone only, or
4990831e 1902pass them on to both addresses. See also 333.
22907b39 1903------------------------------------------------------------------------------
c9f149f5
PH
1904
1905(329) 12-May-05 S Create message ID at MAIL FROM time
1906
1907Currently, the ID is created only when Exim is about to create the data (-D)
1908file for an incoming message. In other words, after it knows it really is going
1909to accept the message. Creating the ID earlier would mean that rejection
1910messages in the log would be tagged with an ID, and this is seen as desirable
1911by some people.
1912------------------------------------------------------------------------------
ec798043
PH
1913
1914(330) 31-May-05 ? Default interface for -bh and default port for -oMi
1915
1916I do not think it worth putting effort in here for these reasons: If a host has
1917multiple interfaces, there's no easy way to choose one to be the default for
1918$interface_address when -bh is used. If the host does not have multiple
1919interfaces, chances are the configuration won't be looking at
1920$interface_address anyway. If you are setting -oMi, and care about the port, it
1921isn't much effort to tack on a port number, though in this case, I suppose a
1922default of 25 is "obvious".
1923------------------------------------------------------------------------------
1924
1925(331) 31-May-05 M More than one retry time per host
1926
1927Consider this example: an attempt to start a TLS connection to a host gets a
1928temporary error. This stops *all* connections, both for TLS and otherwise.
1929Different retry times for different circumstances are needed to get round this.
1930What are the circumstances? TLS/not-TLS is clearly one, but sometimes you don't
1931know if you are going to try TLS until you have connected. So this makes sense
1932only if require_tls is used. Perhaps the multiple retry times should just be
1933per-transport, to avoid these difficulties. If we made all retry keys depend on
1934the transport, this would happen automatically.
1935------------------------------------------------------------------------------
857c3b3f
PH
1936
1937(332) 03-Jun-05 S A "receive time taken" log selector
1938
1939This suggestion is to at an RT= item to the <= line, giving the time it
1940actually took to receive the message.
1941------------------------------------------------------------------------------
4990831e
PH
1942
1943(333) 06-Jun-05 L Re-think and re-implement header handling
1944
1945There are a number of items related to headers above. Better facilities for
1946handling headers at ACL time are needed. The whole way in which Exim handles
1947headers should be re-planned and re-implemented in a more consistent manner.
1948
1949These are the main previous items:
1950
1951Exim 3 Wish List: 41, 85, 149, 187.
1952Exim 4 Wish List: 55, 62, 63, 160, 212, 237, 270, 314, 328.
1953------------------------------------------------------------------------------
2db98699
PH
1954
1955(334) 07-Jun-05 M Support for messages larger than 2G
1956
1957This is probably a longish-term thing at the moment. Quotas over 2G are now
1958supported, but not individual messages; no doubt one day this will be wanted.
1959------------------------------------------------------------------------------
8783ca69
PH
1960
1961(335) 14-Jun-05 T Re-arrange default configuration
1962
1963A small niggle which might be worth fixing is the ordering of the ACL in the
1964default configuration file. The relay_from_hosts and authenticated clauses
1965would be better off before the dnslists examples. However, this should be left
1966until a x.x0 release, because of the documentation implications.
1967------------------------------------------------------------------------------
4aac9b49
PH
1968
1969(336) 16-Jun-05 M Show recipient(s) after header check failure
1970
1971The mainlog line for "There is no valid sender in any header line" shows the
1972sending host and the envelope sender, but does not show any recipients. There
1973has been a request to show recipients. Presumably this should be on some new
1974log selector, and it must have a cutoff maximum number of recipients. NOTE: the
1975data in the reject log does show the envelope recipients as part of its
1976additional data.
1977------------------------------------------------------------------------------
14c6eb72 1978
128376c1 1979(337) 29-Jun-05 S Add "defer" to $recipient_verify_failure
14c6eb72
PH
1980
1981This is for when defer_ok was set when verifying recipients. Since this isn't
1982for a failure, we probably also need "ok" for the non-fail case.
1983------------------------------------------------------------------------------
128376c1
PH
1984
1985(338) 14-Jul-05 M Change to Bind 9 API
1986
1987Exim uses the original API for calling the DNS resolver. There is a newer API
1988available, and noises are being made in some OS that compatibility with the old
1989API is going to be dropped. Nevertheless, there are sure to be systems about
1990for ages that require the use of the old API. Therefore, we will have to
1991implement not only an interface to the new API, but a backwards compatibility
1992feature. It would be nice if this was automatic.
1993------------------------------------------------------------------------------
1994--- HWM 338 ------------------------------------------------------------------
e05f33e0 1995---------------------------- End of WishList ---------------------------------