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