xref: /original-bsd/usr.sbin/sendmail/src/TODO (revision 0ac4996f)
1(Version 8.39 of 05/15/95)
2
3==============================================================================
4For Release 8.7:
5  - another pass through Sun changes
6  - another pass through documentation
7  - change dotted users to plussed users
8  - rip out MIME (on compile flag)
9==============================================================================
10
11Key:
12  X -- extension (user visible change)
13  B -- bug fix
14  S -- security fix
15  E -- enhancement to existing algorithm
16
17
18E ****	forward.5 man page.
19
20X ****	Multiple queues.
21
22X ****	Merge Sun changes.  [8.7]
23
24E ****	Fix parseaddr to return a dummy mailer with QBADADDR set for
25	all cases except null input; change calls to be more sceptical
26	about the return value, checking this bit instead of just
27	checking for == NULL.  (Eric Wassenaar)  [8.7]
28
29X ****	Run time configurable locking -- e.g., compile in HASFLOCK and
30	HASLOCKF, and then choose at runtime between these.
31
32B ****	Aliases with .REDIRECT fail during newaliases if the "n" flag
33	is given.  Problem is, sometimes you want them to, sometimes
34	you don't.  Perhaps two flavors of "error" mailer?
35
36B ****	Calls to gethostbyname with a trailing dot fail if you are
37	not running DNS.
38
39X ****	Add uucp-bang mailer that strips off any domain name from
40	the envelope recipient address first; this is for use in
41	mailer table entries.
42
43X ****	"quote" map (inverse of dequote).  Lets you turn node::user
44	into "node::user"@DECNET.gateway
45
46E ****	Change userdb code to use underlying maps, at least for
47	:mailname; this lets people use NIS to supply generics
48	information.  (Or should the generics code just be broken
49	out into the config file?)
50
51? ****	Should $( [1.2.3.4] $) convert the address to a name?
52
53X ***	Multiple queue runners.
54
55E ***	Have recipient lines rewritten by the user database.
56
57E ***	Arrange to run queue jobs as the owner of that queue file.  This
58	probably requires forcing a fork in order to be able to completely
59	restore the uid/gid portably without leaking out root privileges.
60
61E ***	Long term host status -- store host status on disk for sharing
62	between runs.
63
64X ***	Extend I option to allow setting of retry and timeout values.
65	drl@vuse.vanderbilt.edu (David R. Linn).
66
67X ***	Total connection cache lifespan timeout -- a way to give a
68	timeout on connections regardless of whether they are active
69	or not.  For single threaded servers such as Microsoft SMTP
70	gateway.  Douglas Anderson <dlander@afterlife.ncsc.mil>.
71
72X ***	Create a macro that has message size.
73	Peter Wemm <peter@DIALix.oz.au>
74
75E ***	Dynamically allocate MAXNAME buffers for headers.
76
77E ***	Dynamically allocate "line" buffer in readaliases().
78
79X ***	Add -P to set precedence (e.g., -Pbulk). [8.8]  (BCX)
80
81E ***	Don't send ErrMsgFile to postmaster bounces.  (Josh Smith,
82	josh@osiris.ac.hmc.edu).
83
84E ***	Have daemons that start up check the alias database for
85	correctness and auto-rebuild if necessary.  This is to handle
86	the case of a system crash during an alias database rebuild.
87
88E ***	Eliminate E qf line and e_errorqueue; use e_errorsto a la
89	e_receiptto.  This simplifies and gives symmetry.  (Eric
90	Wassenaar)
91
92X ***	DECNET_RELAY support in configs.
93
94X ***	-wN command line flag to set the width of mailq output.
95	(Allan Johannesen)
96
97E ***	Move mailertable lookup after UUCP-specific class checks?
98	(Kimmo Suominen <kim@tac.nyc.ny.us>)
99
100E ***	Users in more than one list with different owners get duplicate
101	deliveries -- maybe just assign them arbitrarily to one
102	envelope or the other?
103
104E ***	Mailer flag to turn off MX lookups.
105
106E **	Hooks for "mail status daemon" -- send dgrams to a WKS that will
107	announce when jobs are created/destroyed.  Someone needs to write
108	the daemon though....
109
110X **	Mailer timeout (to handle things like local mailers that hang).
111	Perhaps a per-mailer value?
112
113E **	If you get a connection from a host for which you have queued
114	mail, deliver everything to that host.  Intended for dialup SLIP
115	style connections.
116
117X **	Rewriting rules based on incoming mailer.
118
119X **	Have a ruleset (6?) that gets both sender and recipient
120	addresses to check compatibility.  Can you do enough interesting
121	things with this?
122
123X **	Make MAXBADCOMMANDS run time configurable.
124
125E **	Allow mailertable entries of the form ``error:message''.
126
127X **	Have .forward files re-queue if the home directory isn't
128	accessible?  On some option...
129	(Q.G.Campbell@newcastle.ac.uk)
130
131X **	Have local delivery queue if NIS is down?  On some option...
132	(Q.G.Campbell@newcastle.ac.uk)
133
134E **	Have nullclient configuration resolve local names to the local
135	mailer and then redirect them in ruleset 5; this allows you to
136	redirect root differently depending on the client.  It's not
137	clear this is really a good idea though.
138
139E **	Move CurHostAddr into mci struct, and make CurMCI variable
140	point to this, so that logging will give the correct address
141	instead of (0) for cached connections.  Motonori Nakamura.
142
143X **	Allow use of a generalized network service for aliasing?
144	How would the protocol be defined?
145	James Gritton <gritton@byu.edu>.
146
147E **	Make "local configuration error" a temporary failure?
148	(add EX_CONFIG to the markfailure list)
149
150X **	(sigh) BSMTP.
151
152E **	Change listen() high-load backoff to accept and issue a 4xx
153	message so that it responds more quickly.
154
155B **	Commas in NAME envariable cause problems (Peter Wan
156	<peter@cc.gatech.edu>).  Merge with suggestions to use
157	MIME-format for 8-bit characters?
158
159E **	Save address information that comes back as the "additional
160	records" part of an MX lookup, to avoid additional name server
161	attempts.  If there is an MX record without an additional A
162	record, delete it (this avoids a problem with misconfigured
163	DNS situations).
164
165X **	Allow a way to extend the $Z macro with local configuration
166	information.
167
168X **	Allow $x in -bt mode to expand macro "x".  (BCX)  [8.8]
169
170X **	Allow /address in -bt mode to expand address through ruleset 0,
171	aliases, etc. and display results.  [8.8]
172
173X **	"R mailer address" in -bt mode does remotename on address.
174
175E **	Adjust "infinite loop in rule" code to handle entire ruleset
176	(Code from Michael Corrigan).
177
178E **	Allow :include: from command line (not SMTP) to assist in
179	"personal list" management -- i.e., creating lists that
180	cannot be EXPNed.
181
182X **	Database (keyed lookup) auto-rebuild.
183
184X **	Find a good test suite and include in the distribution.
185
186S **	You can use symbolic links to point into protected directories.
187	(AEJ)
188
189X **	Extend OI to allow separate settings for canonification, MX, and A
190	lookups.  [8.8?]
191
192X **	Add $!x class to match any number of words not in class x. (KRE)
193
194X **	LOCAL_RULE_5 (Spencer Sun, spencer@phoenix.Princeton.EDU)
195
196X **	Some way to diddle resolver flags on a per-lookup basis, such
197	as a flag to the map declaration.  (Rick McCarty)
198	- Is this really a good idea?  DNSRCH can be turned off by
199	  putting a dot at the end.  AAONLY?
200
201X **	Extend makemap to "gather" values -- i.e., merge entries that
202	have the same keys. [8.8]  (BCX)
203
204E **	Allow error messages on individual addresses in the qf file.
205	(BCX)
206
207X **	User database extensions for mailing lists:
208	list:precedence -- Precedence: value for new message
209	list:envelopefrom -- envelope "from" value for new message
210	others?  [8.8]
211
212X **	Command line switch to set precedence (for mailing list
213	generation).  (BCX)
214
215B **	Return-Path: header should have <> added if not already there.
216
217X **	Add heuristic to determine if other end is a sendmail; use
218	that to decide whether or not to honor F=I mailer flag.
219	[der Mouse <mouse@collatz.mcrcim.mcgill.edu>]
220
221X **	Automatically drop into MIME mode if you have a full name
222	with 8-bit characters.  See envelope.c 8.19.1.1 and util.c
223	8.17.1.1.  From Anders Ellefsrud <anders@ifi.uio.no>.
224
225X **	-b? flag to read a header and show you what it will look like
226	after all rewriting for an indicated address.
227
228E **	Log $u in logsender() (for=<someaddress>).
229
230B **	Include SOCKADDR in MCI struct for logging (currently gives
231	a sockaddr of zero when printing from the cache).
232
233X **	Allow option to set the characters that are autoquoted in
234	addresses?
235
236X **	Substring map class.
237
238X *	Map that does MB/MR lookups.  Rick McCarty <mccarty@io.com>.
239
240X *	Allow $> anywhere in RHS.  John Boeske <jboeske@ualberta.ca>.
241
242X *	-V flag to print state of all (?) compilation flags.
243
244X *	Handle Expires: header field (if still in queue).
245
246X *	WIN/3B support (non-atomic rename, no h_addr_list, others?)
247	(Bruce Lilly <blilly!bruce@uu.psi.com>)
248
249X *	Sun YBTS daemon uses -ba.  [Martin Kiff <MGK@newton.npl.co.uk>]
250
251B *	EXPN adds @domain to all mailers, including prog.  Is this right?
252	[Bob Henry]
253
254B *	EXPN adds @localhost instead of @$M.  [Pel Emanuelsson]
255
256E *	Change body put code to time out around individual puts.  This will
257	make the timeout algorithm more responsive and more resilient.
258	Unfortunately, it's also a pain in the butt.
259
260X *	Some way to relay unfound local users to another site.
261
262X *	Disable all default RW sets except mailer-specific?
263
264
265-------------------------------------------------------------------------------
266
267IDA Features that have been requested:
268
269* USERMAILER
270
271* LOCAL_MX_HANDLER
272
273* NIS_MAILHOST
274
275* GENERICFROM
276