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