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