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