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