xref: /original-bsd/usr.sbin/sendmail/src/TODO (revision f737e041)
1(Version 8.20 of 02/06/94)
2
3Key:
4  X -- extension (user visible change)
5  B -- bug fix
6  S -- security fix
7  E -- enhancement to existing algorithm
8
9B ****	CNAME loops cause message to be both queued and bounced.
10	"Right" fix is to change dropenvelope et al to do one or
11	the other, but could this cause other problems?
12	Eric Hagberg <hagberg@med.cornell.edu>
13
14X ****	8 -> 7 bit MIME conversion.
15
16E ****	Change NoReturn to be an envelope flag. [8.7]
17
18X ****	Add M_NOLOOPBACKCHK (k) mailer flag to turn off check of name in
19	HELO command. [8.8]
20
21X ****	Merge Sun changes.  [8.7]
22
23X ****	Macro giving size of the message in bytes.
24
25X ****	Create a "service switch" abstraction that will interface with
26	Sun NSS, Ultrix /etc/svc.conf, etc.  This will allow you to
27	turn off DNS entirely, a la ``OIoff''.  [8.7]
28
29X ****	Should have new mailer flags to override LocalMailer stuff:
30	- M_ALIASABLE (A) -- can use as the LHS of an alias.
31	- M_HASPWENT (w) -- should have a /etc/passwd entry.  If not found
32	  there, implies user unknown.  Also implies .forward and UDB
33	  searching, search for |, /, and :include:, etc.).
34	- Actually, UDB searching and |, /, and :include: mapping should
35	  probably be on another flag.  (Cannot be 'l' for back compat
36	  reasons.)
37	- Need for $@host part of triple and Return-Receipt-To: processing
38	  should also be split apart.
39	[8.8]
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
74X ****	Let I option include retry count etc.
75	drl@vuse.vanderbilt.edu (David R. Linn)
76
77X ***	Extend I option to allow setting of retry and timeout values.
78	drl@vuse.vanderbilt.edu (David R. Linn).
79
80X ***	Total connection cache lifespan timeout -- a way to give a
81	timeout on connections regardless of whether they are active
82	or not.  For single threaded servers such as Microsoft SMTP
83	gateway.  Douglas Anderson <dlander@afterlife.ncsc.mil>.
84
85X ***	Mailer flag that does a "ping" equivalent -- if it fails, wait
86	30 seconds and try again (for dialup PPP connections).  Could
87	just try the connection and then immediately retry on some
88	kinds of failures.
89
90X ***	Create a macro that has message size.
91	Peter Wemm <peter@DIALix.oz.au>
92
93E ***	Dynamically allocate MAXNAME buffers for headers.
94
95E ***	Dynamically allocate "line" buffer in readaliases().
96
97X ***	Add ability to disable Return-Receipt-To: on a privacy flag. [8.8]
98
99X ***	Add -P to set precedence (e.g., -Pbulk). [8.8]  (BCX)
100
101X ***	Runtime option to enable/disable IDENT protocol.
102
103E ***	Don't send ErrMsgFile to postmaster bounces.  (Josh Smith,
104	josh@osiris.ac.hmc.edu).
105
106X ***	Add "user" map to look up a user name via getpwnam -- so that
107	non-local names can be forwarded to another site.  [8.8]
108
109E ***	Have daemons that start up check the alias database for
110	correctness and auto-rebuild if necessary.  This is to handle
111	the case of a system crash during an alias database rebuild.
112
113E ***	Eliminate E qf line and e_errorqueue; use e_errorsto a la
114	e_receiptto.  This simplifies and gives symmetry.  (Eric
115	Wassenaar)
116
117B ***	Fix syslog buffer overflow problems.
118
119X ***	DECNET_RELAY support in configs.
120
121X ***	-wN command line flag to set the width of mailq output.
122	(Allan Johannesen)
123
124E **	Move CurHostAddr into mci struct, and make CurMCI variable
125	point to this, so that logging will give the correct address
126	instead of (0) for cached connections.  Motonori Nakamura.
127
128X **	Allow use of a generalized network service for aliasing?
129	How would the protocol be defined?
130	James Gritton <gritton@byu.edu>.
131
132E **	Make "local configuration error" a temporary failure?
133	(add EX_CONFIG to the markfailure list)
134
135X **	(sigh) BSMTP.
136
137X **	"E" configuration line that sets environment variables.
138
139E **	Change listen() high-load backoff to accept and issue a 4xx
140	message so that it responds more quickly.
141
142E **	Change "/usr/tmp/dead.letter" to be based on _PATH_VARTMP.
143
144B **	Commas in NAME envariable cause problems (Peter Wan
145	<peter@cc.gatech.edu>).  Merge with suggestions to use
146	MIME-format for 8-bit characters?
147
148E **	Save address information that comes back as the "additional
149	records" part of an MX lookup, to avoid additional name server
150	attempts.  If there is an MX record without an additional A
151	record, delete it (this avoids a problem with misconfigured
152	DNS situations).
153
154X **	Allow a way to extend the $Z macro with local configuration
155	information.
156
157X **	Allow $x in -bt mode to expand macro "x".  (BCX)  [8.8]
158
159X **	Allow /address in -bt mode to expand address through ruleset 0,
160	aliases, etc. and display results.  [8.8]
161
162X **	"R mailer address" in -bt mode does remotename on address.
163
164E **	Adjust "infinite loop in rule" code to handle entire ruleset
165	(Code from Michael Corrigan).
166
167E **	Allow :include: from command line (not SMTP) to assist in
168	"personal list" management -- i.e., creating lists that
169	cannot be EXPNed.
170
171X **	Database (keyed lookup) auto-rebuild.
172
173X **	Find a good test suite and include in the distribution.
174
175S **	You can use symbolic links to point into protected directories.
176	(AEJ)
177
178X **	Extend OI to allow separate settings for canonification, MX, and A
179	lookups.  [8.8?]
180
181X **	Add $!x class to match any number of words not in class x. (KRE)
182
183X **	LOCAL_RULE_5 (Spencer Sun, spencer@phoenix.Princeton.EDU)
184
185X **	Add "bestmx" map -- returns "best MX host" for this address.
186	Allows you to do automatic detection of when you are the best
187	MX for a given address.  [8.7?]
188
189X **	Some way to diddle resolver flags on a per-lookup basis, such
190	as a flag to the map declaration.  (Rick McCarty)
191	- Is this really a good idea?  DNSRCH can be turned off by
192	  putting a dot at the end.  AAONLY?
193
194X **	Extend makemap to "gather" values -- i.e., merge entries that
195	have the same keys. [8.8]  (BCX)
196
197E **	Allow error messages on individual addresses in the qf file.
198	(BCX)
199
200X **	Multi-character option names.  [9.1]
201
202X **	User database extensions for mailing lists:
203	list:precedence -- Precedence: value for new message
204	list:envelopefrom -- envelope "from" value for new message
205	others?  [8.8]
206
207X **	Command line switch to set precedence (for mailing list
208	generation).  (BCX)
209
210B **	Restore `T' line to eliminate X-Authentication-Warning: at
211	inappropriate times.  (Christophe Wolfhugel)
212	- T could become a shorthand for Ct -- i.e., create a new
213	  predefined class.
214	- Eliminate "<user> set sender to <address>" message entirely?
215	  (this is the workaround)
216
217B **	Return-Path: header should have <> added if not already there.
218
219X **	Add heuristic to determine if other end is a sendmail; use
220	that to decide whether or not to honor F=I mailer flag.
221	[der Mouse <mouse@collatz.mcrcim.mcgill.edu>]
222
223X **	Automatically drop into MIME mode if you have a full name
224	with 8-bit characters.  See envelope.c 8.19.1.1 and util.c
225	8.17.1.1.  From Anders Ellefsrud <anders@ifi.uio.no>.
226
227X **	-b? flag to read a header and show you what it will look like
228	after all rewriting for an indicated address.
229
230E **	Log $u in logsender() (for=<someaddress>).
231
232B **	Include SOCKADDR in MCI struct for logging (currently gives
233	a sockaddr of zero when printing from the cache).
234
235X *	Map that does MB/MR lookups.  Rick McCarty <mccarty@io.com>.
236
237X *	Allow $> anywhere in RHS.  John Boeske <jboeske@ualberta.ca>.
238
239X *	-V flag to print state of all (?) compilation flags.
240
241X *	Handle Expires: header field (if still in queue).
242
243X *	WIN/3B support (non-atomic rename, no h_addr_list, others?)
244	(Bruce Lilly <blilly!bruce@uu.psi.com>)
245
246X *	Sun YBTS daemon uses -ba.  [Martin Kiff <MGK@newton.npl.co.uk>]
247
248B *	EXPN adds @domain to all mailers, including prog.  Is this right?
249	[Bob Henry]
250
251B *	EXPN adds @localhost instead of @$M.  [Pel Emanuelsson]
252
253E *	Change body put code to time out around individual puts.  This will
254	make the timeout algorithm more responsive and more resilient.
255	Unfortunately, it's also a pain in the butt.
256
257X *	Some way to relay unfound local users to another site.
258
259X *	Disable all default RW sets except mailer-specific?
260