xref: /csrg-svn/usr.sbin/sendmail/src/TODO (revision 65753)
1*65753Seric(Version 8.16 of 01/15/94)
233732Sbostic
364705SericKey:
464705Seric  X -- extension (user visible change)
564705Seric  B -- bug fix
664705Seric  S -- security fix
764705Seric  E -- enhancement to existing algorithm
857668Seric
964705SericX ****	8 -> 7 bit MIME conversion.
1057943Seric
1164705SericE ****	Change NoReturn to be an envelope flag. [8.7]
1258964Seric
1364705SericX ****	Add M_NOLOOPBACKCHK (k) mailer flag to turn off check of name in
1464705Seric	HELO command. [8.8]
1560606Seric
1664705SericX ****	Merge Sun changes.  [8.7]
1759609Seric
1865119SericX ****	Macro giving size of the message in bytes.
1965119Seric
2065188SericX ****	Create a "service switch" abstraction that will interface with
2165188Seric	Sun NSS, Ultrix /etc/svc.conf, etc.  This will allow you to
2265188Seric	turn off DNS entirely, a la ``OIoff''.  [8.7]
2364652Seric
2464718SericX ****	Should have new mailer flags to override LocalMailer stuff:
2564652Seric	- M_ALIASABLE (A) -- can use as the LHS of an alias.
2664652Seric	- M_HASPWENT (w) -- should have a /etc/passwd entry.  If not found
2764652Seric	  there, implies user unknown.  Also implies .forward and UDB
2864652Seric	  searching, search for |, /, and :include:, etc.).
2964652Seric	- Actually, UDB searching and |, /, and :include: mapping should
3064652Seric	  probably be on another flag.  (Cannot be 'l' for back compat
3164652Seric	  reasons.)
3264652Seric	- Need for $@host part of triple and Return-Receipt-To: processing
3364652Seric	  should also be split apart.
3464705Seric	[8.8]
3564652Seric
3665119SericX ****	Mailer flag to override MX lookups.
3765119Seric
3864755SericE ****	Fix parseaddr to return a dummy mailer with QBADADDR set for
3964755Seric	all cases except null input; change calls to be more sceptical
4064755Seric	about the return value, checking this bit instead of just
4164755Seric	checking for == NULL.  (Eric Wassenaar)  [8.7]
4264755Seric
4364799SericX ****	Run time configurable locking -- e.g., compile in HASFLOCK and
4464799Seric	HASLOCKF, and then choose at runtime between these.
4564799Seric
4665353SericB ****	Aliases with .REDIRECT fail during newaliases if the "n" flag
4765353Seric	is given.  Problem is, sometimes you want them to, sometimes
4865353Seric	you don't.  Perhaps two flavors of "error" mailer?
4965353Seric
5065353SericB ****	Calls to gethostbyname with a trailing dot fail if you are
5165353Seric	not running DNS.
5265353Seric
5365119SericE ****	Move delivery forking from sendenvelope to sendall so that
5465119Seric	the connection cache works between split envelopes, and to
5565119Seric	avoid a flurry of processes should you be sending to lots of
5665119Seric	sub-lists.
5765119Seric
5865119SericX ****	Add uucp-bang mailer that strips off any domain name from
5965119Seric	the envelope recipient address first; this is for use in
6065119Seric	mailer table entries.
6165119Seric
6265188SericX ****	"quote" map (inverse of dequote).  Lets you turn node::user
6365188Seric	into "node::user"@DECNET.gateway
6465188Seric
6565219SericX ****	Named rulesets.
6665219Seric
67*65753SericX ***	Total connection cache lifespan timeout -- a way to give a
68*65753Seric	timeout on connections regardless of whether they are active
69*65753Seric	or not.  For single threaded servers such as Microsoft SMTP
70*65753Seric	gateway.  Douglas Anderson <dlander@afterlife.ncsc.mil>.
71*65753Seric
7265188SericX ***	Mailer flag that does a "ping" equivalent -- if it fails, wait
7365188Seric	30 seconds and try again (for dialup PPP connections).  Could
7465188Seric	just try the connection and then immediately retry on some
7565188Seric	kinds of failures.
7665188Seric
7765119SericX ***	Create a macro that has message size.
7865119Seric	Peter Wemm <peter@DIALix.oz.au>
7965119Seric
8064718SericE ***	Dynamically allocate MAXNAME buffers for headers.
8164718Seric
8265119SericE ***	Dynamically allocate "line" buffer in readaliases().
8365119Seric
8464705SericX ***	Add ability to disable Return-Receipt-To: on a privacy flag. [8.8]
8564652Seric
8664718SericX ***	Add -P to set precedence (e.g., -Pbulk). [8.8]  (BCX)
8764652Seric
8864718SericX ***	Runtime option to enable/disable IDENT protocol.
8964718Seric
9064718SericE ***	Don't send ErrMsgFile to postmaster bounces.  (Josh Smith,
9164718Seric	josh@osiris.ac.hmc.edu).
9264718Seric
9364718SericX ***	Add "user" map to look up a user name via getpwnam -- so that
9464718Seric	non-local names can be forwarded to another site.  [8.8]
9564718Seric
9664799SericE ***	Have daemons that start up check the alias database for
9764799Seric	correctness and auto-rebuild if necessary.  This is to handle
9864799Seric	the case of a system crash during an alias database rebuild.
9964799Seric
10064799SericE ***	Eliminate E qf line and e_errorqueue; use e_errorsto a la
10164799Seric	e_receiptto.  This simplifies and gives symmetry.  (Eric
10264799Seric	Wassenaar)
10364799Seric
10465119SericB ***	Fix syslog buffer overflow problems.
10565119Seric
10665165SericX ***	DECNET_RELAY support in configs.
10765165Seric
108*65753SericX ***	-wN command line flag to set the width of mailq output.
109*65753Seric	(Allan Johannesen)
110*65753Seric
11165555SericE **	Make "local configuration error" a temporary failure?
11265555Seric	(add EX_CONFIG to the markfailure list)
11365555Seric
11465353SericX **	(sigh) BSMTP.
11565353Seric
11665226SericX **	"E" configuration line that sets environment variables.
11765226Seric
11865219SericE **	Change listen() high-load backoff to accept and issue a 4xx
11965219Seric	message so that it responds more quickly.
12065219Seric
12165188SericE **	Change "/usr/tmp/dead.letter" to be based on _PATH_VARTMP.
12265188Seric
12365119SericB **	Commas in NAME envariable cause problems (Peter Wan
12465119Seric	<peter@cc.gatech.edu>).  Merge with suggestions to use
12565119Seric	MIME-format for 8-bit characters?
12665119Seric
12765119SericE **	Save address information that comes back as the "additional
12865119Seric	records" part of an MX lookup, to avoid additional name server
12965119Seric	attempts.  If there is an MX record without an additional A
13065119Seric	record, delete it (this avoids a problem with misconfigured
13165119Seric	DNS situations).
13265119Seric
13365119SericX **	Allow a way to extend the $Z macro with local configuration
13465119Seric	information.
13565119Seric
13664755SericX **	Allow $x in -bt mode to expand macro "x".  (BCX)  [8.8]
13764755Seric
13864755SericX **	Allow /address in -bt mode to expand address through ruleset 0,
13964755Seric	aliases, etc. and display results.  [8.8]
14064755Seric
14164755SericX **	"R mailer address" in -bt mode does remotename on address.
14264755Seric
14364755SericE **	Adjust "infinite loop in rule" code to handle entire ruleset
14464755Seric	(Code from Michael Corrigan).
14564755Seric
14664718SericE **	Allow :include: from command line (not SMTP) to assist in
14764718Seric	"personal list" management -- i.e., creating lists that
14864718Seric	cannot be EXPNed.
14964718Seric
15064718SericX **	Database (keyed lookup) auto-rebuild.
15164718Seric
15264705SericX **	Find a good test suite and include in the distribution.
15364652Seric
15464718SericS **	You can use symbolic links to point into protected directories.
15564718Seric	(AEJ)
15664652Seric
15764705SericX **	Extend OI to allow separate settings for canonification, MX, and A
15864718Seric	lookups.  [8.8?]
15964652Seric
16064718SericX **	Add $!x class to match any number of words not in class x. (KRE)
16164683Seric
16264705SericX **	LOCAL_RULE_5 (Spencer Sun, spencer@phoenix.Princeton.EDU)
16364703Seric
16464705SericX **	Add "bestmx" map -- returns "best MX host" for this address.
16564705Seric	Allows you to do automatic detection of when you are the best
16664705Seric	MX for a given address.  [8.7?]
16764703Seric
16865353SericX **	Some way to diddle resolver flags on a per-lookup basis, such
16965353Seric	as a flag to the map declaration.  (Rick McCarty)
17065353Seric	- Is this really a good idea?  DNSRCH can be turned off by
17165353Seric	  putting a dot at the end.  AAONLY?
17265353Seric
17364718SericX **	Extend makemap to "gather" values -- i.e., merge entries that
17464718Seric	have the same keys. [8.8]  (BCX)
17564703Seric
17664718SericE **	Allow error messages on individual addresses in the qf file.
17764718Seric	(BCX)
17864718Seric
17964718SericX **	Multi-character option names.  [9.1]
18064718Seric
18164718SericX **	User database extensions for mailing lists:
18264718Seric	list:precedence -- Precedence: value for new message
18364718Seric	list:envelopefrom -- envelope "from" value for new message
18464718Seric	others?  [8.8]
18564718Seric
18665353SericX **	Command line switch to set precedence (for mailing list
18765353Seric	generation).  (BCX)
18865353Seric
18964755SericB **	Restore `T' line to eliminate X-Authentication-Warning: at
19064755Seric	inappropriate times.  (Christophe Wolfhugel)
19164755Seric	- T could become a shorthand for Ct -- i.e., create a new
19264755Seric	  predefined class.
19364755Seric	- Eliminate "<user> set sender to <address>" message entirely?
19464755Seric	  (this is the workaround)
19564755Seric
19665119SericB **	Return-Path: header should have <> added if not already there.
19765119Seric
19865119SericX **	Add heuristic to determine if other end is a sendmail; use
19965119Seric	that to decide whether or not to honor F=I mailer flag.
20065119Seric	[der Mouse <mouse@collatz.mcrcim.mcgill.edu>]
20165119Seric
20265119SericX **	Automatically drop into MIME mode if you have a full name
20365119Seric	with 8-bit characters.  See envelope.c 8.19.1.1 and util.c
20465119Seric	8.17.1.1.  From Anders Ellefsrud <anders@ifi.uio.no>.
20565119Seric
20665119SericX **	-b? flag to read a header and show you what it will look like
20765119Seric	after all rewriting for an indicated address.
20865119Seric
20965188SericE **	Log $u in logsender() (for=<someaddress>).
21065188Seric
211*65753SericB **	Include SOCKADDR in MCI struct for logging (currently gives
212*65753Seric	a sockaddr of zero when printing from the cache).
213*65753Seric
21465119SericX *	Allow $> anywhere in RHS.  John Boeske <jboeske@ualberta.ca>.
21565119Seric
21664755SericX *	-V flag to print state of all (?) compilation flags.
21764755Seric
21864718SericX *	Handle Expires: header field (if still in queue).
21964718Seric
22064705SericX *	WIN/3B support (non-atomic rename, no h_addr_list, others?)
22164705Seric	(Bruce Lilly <blilly!bruce@uu.psi.com>)
22264703Seric
22364705SericX *	Sun YBTS daemon uses -ba.  [Martin Kiff <MGK@newton.npl.co.uk>]
22464705Seric
22564705SericB *	EXPN adds @domain to all mailers, including prog.  Is this right?
22664705Seric	[Bob Henry]
22764705Seric
22864705SericB *	EXPN adds @localhost instead of @$M.  [Pel Emanuelsson]
22964705Seric
23064705SericE *	Change body put code to time out around individual puts.  This will
23164705Seric	make the timeout algorithm more responsive and more resilient.
23264705Seric	Unfortunately, it's also a pain in the butt.
23364705Seric
23464705SericX *	Some way to relay unfound local users to another site.
23564705Seric
23664705SericX *	Disable all default RW sets except mailer-specific?
237