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