summaryrefslogtreecommitdiffstats
path: root/usr.sbin/sendmail/src/TODO
blob: 80d35d01c8dfb5d4985fb35396d3b967866c1ee0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
(Version 8.22 of 3/12/94)

Key:
  X -- extension (user visible change)
  B -- bug fix
  S -- security fix
  E -- enhancement to existing algorithm


X ****	8 -> 7 bit MIME conversion.

E ****	Change NoReturn to be an envelope flag. [8.7]

X ****	Add M_NOLOOPBACKCHK (k) mailer flag to turn off check of name in
	HELO command. [8.8]

X ****	Merge Sun changes.  [8.7]

X ****	Macro giving size of the message in bytes.

X ****	Create a "service switch" abstraction that will interface with
	Sun NSS, Ultrix /etc/svc.conf, etc.  This will allow you to
	turn off DNS entirely, a la ``OIoff''.  [8.7]

X ****	Should have new mailer flags to override LocalMailer stuff:
	- M_ALIASABLE (A) -- can use as the LHS of an alias.
	- M_HASPWENT (w) -- should have a /etc/passwd entry.  If not found
	  there, implies user unknown.  Also implies .forward and UDB
	  searching, search for |, /, and :include:, etc.).
	- Actually, UDB searching and |, /, and :include: mapping should
	  probably be on another flag.  (Cannot be 'l' for back compat
	  reasons.)
	- Need for $@host part of triple and Return-Receipt-To: processing
	  should also be split apart.
	[8.8]

X ****	Mailer flag to enable/disable surrounding route-addrs with
	angle brackets in setsender().  UUCP cleanup scripts treat
	these as file redirection.

X ****	Mailer flag to override MX lookups.

E ****	Fix parseaddr to return a dummy mailer with QBADADDR set for
	all cases except null input; change calls to be more sceptical
	about the return value, checking this bit instead of just
	checking for == NULL.  (Eric Wassenaar)  [8.7]

X ****	Run time configurable locking -- e.g., compile in HASFLOCK and
	HASLOCKF, and then choose at runtime between these.

B ****	Aliases with .REDIRECT fail during newaliases if the "n" flag
	is given.  Problem is, sometimes you want them to, sometimes
	you don't.  Perhaps two flavors of "error" mailer?

B ****	Calls to gethostbyname with a trailing dot fail if you are
	not running DNS.

E ****	Move delivery forking from sendenvelope to sendall so that
	the connection cache works between split envelopes, and to
	avoid a flurry of processes should you be sending to lots of
	sub-lists.

X ****	Add uucp-bang mailer that strips off any domain name from
	the envelope recipient address first; this is for use in
	mailer table entries.

X ****	"quote" map (inverse of dequote).  Lets you turn node::user
	into "node::user"@DECNET.gateway

X ****	Named rulesets.

? ****	Should $( [1.2.3.4] $) convert the address to a name?

E ****	Change collect() handling to use high level timeouts instead
	of per-line timeouts -- the current mechanism is swamping
	the machine with system calls.  (Look at KJS code.)

E ***	Long term host status -- store host status on disk for sharing
	between runs.

X ***	Extend I option to allow setting of retry and timeout values.
	drl@vuse.vanderbilt.edu (David R. Linn).

X ***	Total connection cache lifespan timeout -- a way to give a
	timeout on connections regardless of whether they are active
	or not.  For single threaded servers such as Microsoft SMTP
	gateway.  Douglas Anderson <dlander@afterlife.ncsc.mil>.

X ***	Mailer flag that does a "ping" equivalent -- if it fails, wait
	30 seconds and try again (for dialup PPP connections).  Could
	just try the connection and then immediately retry on some
	kinds of failures.

X ***	Create a macro that has message size.
	Peter Wemm <peter@DIALix.oz.au>

E ***	Dynamically allocate MAXNAME buffers for headers.

E ***	Dynamically allocate "line" buffer in readaliases().

X ***	Add ability to disable Return-Receipt-To: on a privacy flag. [8.8]

X ***	Add -P to set precedence (e.g., -Pbulk). [8.8]  (BCX)

X ***	Runtime option to enable/disable IDENT protocol.

E ***	Don't send ErrMsgFile to postmaster bounces.  (Josh Smith,
	josh@osiris.ac.hmc.edu).

X ***	Add "user" map to look up a user name via getpwnam -- so that
	non-local names can be forwarded to another site.  [8.8]

E ***	Have daemons that start up check the alias database for
	correctness and auto-rebuild if necessary.  This is to handle
	the case of a system crash during an alias database rebuild.

E ***	Eliminate E qf line and e_errorqueue; use e_errorsto a la
	e_receiptto.  This simplifies and gives symmetry.  (Eric
	Wassenaar)

X ***	DECNET_RELAY support in configs.

X ***	-wN command line flag to set the width of mailq output.
	(Allan Johannesen)

E ***	Move mailertable lookup after UUCP-specific class checks?
	(Kimmo Suominen <kim@tac.nyc.ny.us>)

E ***	Users in more than one list with different owners get duplicate
	deliveries -- maybe just assign them arbitrarily to one
	envelope or the other?

X **	Make MAXBADCOMMANDS run time configurable.

E **	Allow mailertable entries of the form ``error:message''.

X **	Have .forward files re-queue if the home directory isn't
	accessible?  On some option...
	(Q.G.Campbell@newcastle.ac.uk)

X **	Have local delivery queue if NIS is down?  On some option...
	(Q.G.Campbell@newcastle.ac.uk)

E **	Have nullclient configuration resolve local names to the local
	mailer and then redirect them in ruleset 5; this allows you to
	redirect root differently depending on the client.  It's not
	clear this is really a good idea though.

E **	Move CurHostAddr into mci struct, and make CurMCI variable
	point to this, so that logging will give the correct address
	instead of (0) for cached connections.  Motonori Nakamura.

X **	Allow use of a generalized network service for aliasing?
	How would the protocol be defined?
	James Gritton <gritton@byu.edu>.

E **	Make "local configuration error" a temporary failure?
	(add EX_CONFIG to the markfailure list)

X **	(sigh) BSMTP.

X **	"E" configuration line that sets environment variables.

E **	Change listen() high-load backoff to accept and issue a 4xx
	message so that it responds more quickly.

E **	Change "/usr/tmp/dead.letter" to be based on _PATH_VARTMP.

B **	Commas in NAME envariable cause problems (Peter Wan
	<peter@cc.gatech.edu>).  Merge with suggestions to use
	MIME-format for 8-bit characters?

E **	Save address information that comes back as the "additional
	records" part of an MX lookup, to avoid additional name server
	attempts.  If there is an MX record without an additional A
	record, delete it (this avoids a problem with misconfigured
	DNS situations).

X **	Allow a way to extend the $Z macro with local configuration
	information.

X **	Allow $x in -bt mode to expand macro "x".  (BCX)  [8.8]

X **	Allow /address in -bt mode to expand address through ruleset 0,
	aliases, etc. and display results.  [8.8]

X **	"R mailer address" in -bt mode does remotename on address.

E **	Adjust "infinite loop in rule" code to handle entire ruleset
	(Code from Michael Corrigan).

E **	Allow :include: from command line (not SMTP) to assist in
	"personal list" management -- i.e., creating lists that
	cannot be EXPNed.

X **	Database (keyed lookup) auto-rebuild.

X **	Find a good test suite and include in the distribution.

S **	You can use symbolic links to point into protected directories.
	(AEJ)

X **	Extend OI to allow separate settings for canonification, MX, and A
	lookups.  [8.8?]

X **	Add $!x class to match any number of words not in class x. (KRE)

X **	LOCAL_RULE_5 (Spencer Sun, spencer@phoenix.Princeton.EDU)

X **	Add "bestmx" map -- returns "best MX host" for this address.
	Allows you to do automatic detection of when you are the best
	MX for a given address.  [8.7?]

X **	Some way to diddle resolver flags on a per-lookup basis, such
	as a flag to the map declaration.  (Rick McCarty)
	- Is this really a good idea?  DNSRCH can be turned off by
	  putting a dot at the end.  AAONLY?

X **	Extend makemap to "gather" values -- i.e., merge entries that
	have the same keys. [8.8]  (BCX)

E **	Allow error messages on individual addresses in the qf file.
	(BCX)

X **	Multi-character option names.  [9.1]

X **	User database extensions for mailing lists:
	list:precedence -- Precedence: value for new message
	list:envelopefrom -- envelope "from" value for new message
	others?  [8.8]

X **	Command line switch to set precedence (for mailing list
	generation).  (BCX)

B **	Restore `T' line to eliminate X-Authentication-Warning: at
	inappropriate times.  (Christophe Wolfhugel)
	- T could become a shorthand for Ct -- i.e., create a new
	  predefined class.
	- Eliminate "<user> set sender to <address>" message entirely?
	  (this is the workaround)

B **	Return-Path: header should have <> added if not already there.

X **	Add heuristic to determine if other end is a sendmail; use
	that to decide whether or not to honor F=I mailer flag.
	[der Mouse <mouse@collatz.mcrcim.mcgill.edu>]

X **	Automatically drop into MIME mode if you have a full name
	with 8-bit characters.  See envelope.c 8.19.1.1 and util.c
	8.17.1.1.  From Anders Ellefsrud <anders@ifi.uio.no>.

X **	-b? flag to read a header and show you what it will look like
	after all rewriting for an indicated address.

E **	Log $u in logsender() (for=<someaddress>).

B **	Include SOCKADDR in MCI struct for logging (currently gives
	a sockaddr of zero when printing from the cache).

X **	Allow option to set the characters that are autoquoted in
	addresses?

X *	Map that does MB/MR lookups.  Rick McCarty <mccarty@io.com>.

X *	Allow $> anywhere in RHS.  John Boeske <jboeske@ualberta.ca>.

X *	-V flag to print state of all (?) compilation flags.

X *	Handle Expires: header field (if still in queue).

X *	WIN/3B support (non-atomic rename, no h_addr_list, others?)
	(Bruce Lilly <blilly!bruce@uu.psi.com>)

X *	Sun YBTS daemon uses -ba.  [Martin Kiff <MGK@newton.npl.co.uk>]

B *	EXPN adds @domain to all mailers, including prog.  Is this right?
	[Bob Henry]

B *	EXPN adds @localhost instead of @$M.  [Pel Emanuelsson]

E *	Change body put code to time out around individual puts.  This will
	make the timeout algorithm more responsive and more resilient.
	Unfortunately, it's also a pain in the butt.

X *	Some way to relay unfound local users to another site.

X *	Disable all default RW sets except mailer-specific?
OpenPOWER on IntegriCloud