xref: /csrg-svn/usr.sbin/sendmail/src/TODO (revision 65869)
1*65869Seric(Version 8.17 of 01/24/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*65869SericX ***	Extend I option to allow setting of retry and timeout values.
68*65869Seric	drl@vuse.vanderbilt.edu (David R. Linn).
69*65869Seric
7065753SericX ***	Total connection cache lifespan timeout -- a way to give a
7165753Seric	timeout on connections regardless of whether they are active
7265753Seric	or not.  For single threaded servers such as Microsoft SMTP
7365753Seric	gateway.  Douglas Anderson <dlander@afterlife.ncsc.mil>.
7465753Seric
7565188SericX ***	Mailer flag that does a "ping" equivalent -- if it fails, wait
7665188Seric	30 seconds and try again (for dialup PPP connections).  Could
7765188Seric	just try the connection and then immediately retry on some
7865188Seric	kinds of failures.
7965188Seric
8065119SericX ***	Create a macro that has message size.
8165119Seric	Peter Wemm <peter@DIALix.oz.au>
8265119Seric
8364718SericE ***	Dynamically allocate MAXNAME buffers for headers.
8464718Seric
8565119SericE ***	Dynamically allocate "line" buffer in readaliases().
8665119Seric
8764705SericX ***	Add ability to disable Return-Receipt-To: on a privacy flag. [8.8]
8864652Seric
8964718SericX ***	Add -P to set precedence (e.g., -Pbulk). [8.8]  (BCX)
9064652Seric
9164718SericX ***	Runtime option to enable/disable IDENT protocol.
9264718Seric
9364718SericE ***	Don't send ErrMsgFile to postmaster bounces.  (Josh Smith,
9464718Seric	josh@osiris.ac.hmc.edu).
9564718Seric
9664718SericX ***	Add "user" map to look up a user name via getpwnam -- so that
9764718Seric	non-local names can be forwarded to another site.  [8.8]
9864718Seric
9964799SericE ***	Have daemons that start up check the alias database for
10064799Seric	correctness and auto-rebuild if necessary.  This is to handle
10164799Seric	the case of a system crash during an alias database rebuild.
10264799Seric
10364799SericE ***	Eliminate E qf line and e_errorqueue; use e_errorsto a la
10464799Seric	e_receiptto.  This simplifies and gives symmetry.  (Eric
10564799Seric	Wassenaar)
10664799Seric
10765119SericB ***	Fix syslog buffer overflow problems.
10865119Seric
10965165SericX ***	DECNET_RELAY support in configs.
11065165Seric
11165753SericX ***	-wN command line flag to set the width of mailq output.
11265753Seric	(Allan Johannesen)
11365753Seric
11465555SericE **	Make "local configuration error" a temporary failure?
11565555Seric	(add EX_CONFIG to the markfailure list)
11665555Seric
11765353SericX **	(sigh) BSMTP.
11865353Seric
11965226SericX **	"E" configuration line that sets environment variables.
12065226Seric
12165219SericE **	Change listen() high-load backoff to accept and issue a 4xx
12265219Seric	message so that it responds more quickly.
12365219Seric
12465188SericE **	Change "/usr/tmp/dead.letter" to be based on _PATH_VARTMP.
12565188Seric
12665119SericB **	Commas in NAME envariable cause problems (Peter Wan
12765119Seric	<peter@cc.gatech.edu>).  Merge with suggestions to use
12865119Seric	MIME-format for 8-bit characters?
12965119Seric
13065119SericE **	Save address information that comes back as the "additional
13165119Seric	records" part of an MX lookup, to avoid additional name server
13265119Seric	attempts.  If there is an MX record without an additional A
13365119Seric	record, delete it (this avoids a problem with misconfigured
13465119Seric	DNS situations).
13565119Seric
13665119SericX **	Allow a way to extend the $Z macro with local configuration
13765119Seric	information.
13865119Seric
13964755SericX **	Allow $x in -bt mode to expand macro "x".  (BCX)  [8.8]
14064755Seric
14164755SericX **	Allow /address in -bt mode to expand address through ruleset 0,
14264755Seric	aliases, etc. and display results.  [8.8]
14364755Seric
14464755SericX **	"R mailer address" in -bt mode does remotename on address.
14564755Seric
14664755SericE **	Adjust "infinite loop in rule" code to handle entire ruleset
14764755Seric	(Code from Michael Corrigan).
14864755Seric
14964718SericE **	Allow :include: from command line (not SMTP) to assist in
15064718Seric	"personal list" management -- i.e., creating lists that
15164718Seric	cannot be EXPNed.
15264718Seric
15364718SericX **	Database (keyed lookup) auto-rebuild.
15464718Seric
15564705SericX **	Find a good test suite and include in the distribution.
15664652Seric
15764718SericS **	You can use symbolic links to point into protected directories.
15864718Seric	(AEJ)
15964652Seric
16064705SericX **	Extend OI to allow separate settings for canonification, MX, and A
16164718Seric	lookups.  [8.8?]
16264652Seric
16364718SericX **	Add $!x class to match any number of words not in class x. (KRE)
16464683Seric
16564705SericX **	LOCAL_RULE_5 (Spencer Sun, spencer@phoenix.Princeton.EDU)
16664703Seric
16764705SericX **	Add "bestmx" map -- returns "best MX host" for this address.
16864705Seric	Allows you to do automatic detection of when you are the best
16964705Seric	MX for a given address.  [8.7?]
17064703Seric
17165353SericX **	Some way to diddle resolver flags on a per-lookup basis, such
17265353Seric	as a flag to the map declaration.  (Rick McCarty)
17365353Seric	- Is this really a good idea?  DNSRCH can be turned off by
17465353Seric	  putting a dot at the end.  AAONLY?
17565353Seric
17664718SericX **	Extend makemap to "gather" values -- i.e., merge entries that
17764718Seric	have the same keys. [8.8]  (BCX)
17864703Seric
17964718SericE **	Allow error messages on individual addresses in the qf file.
18064718Seric	(BCX)
18164718Seric
18264718SericX **	Multi-character option names.  [9.1]
18364718Seric
18464718SericX **	User database extensions for mailing lists:
18564718Seric	list:precedence -- Precedence: value for new message
18664718Seric	list:envelopefrom -- envelope "from" value for new message
18764718Seric	others?  [8.8]
18864718Seric
18965353SericX **	Command line switch to set precedence (for mailing list
19065353Seric	generation).  (BCX)
19165353Seric
19264755SericB **	Restore `T' line to eliminate X-Authentication-Warning: at
19364755Seric	inappropriate times.  (Christophe Wolfhugel)
19464755Seric	- T could become a shorthand for Ct -- i.e., create a new
19564755Seric	  predefined class.
19664755Seric	- Eliminate "<user> set sender to <address>" message entirely?
19764755Seric	  (this is the workaround)
19864755Seric
19965119SericB **	Return-Path: header should have <> added if not already there.
20065119Seric
20165119SericX **	Add heuristic to determine if other end is a sendmail; use
20265119Seric	that to decide whether or not to honor F=I mailer flag.
20365119Seric	[der Mouse <mouse@collatz.mcrcim.mcgill.edu>]
20465119Seric
20565119SericX **	Automatically drop into MIME mode if you have a full name
20665119Seric	with 8-bit characters.  See envelope.c 8.19.1.1 and util.c
20765119Seric	8.17.1.1.  From Anders Ellefsrud <anders@ifi.uio.no>.
20865119Seric
20965119SericX **	-b? flag to read a header and show you what it will look like
21065119Seric	after all rewriting for an indicated address.
21165119Seric
21265188SericE **	Log $u in logsender() (for=<someaddress>).
21365188Seric
21465753SericB **	Include SOCKADDR in MCI struct for logging (currently gives
21565753Seric	a sockaddr of zero when printing from the cache).
21665753Seric
21765119SericX *	Allow $> anywhere in RHS.  John Boeske <jboeske@ualberta.ca>.
21865119Seric
21964755SericX *	-V flag to print state of all (?) compilation flags.
22064755Seric
22164718SericX *	Handle Expires: header field (if still in queue).
22264718Seric
22364705SericX *	WIN/3B support (non-atomic rename, no h_addr_list, others?)
22464705Seric	(Bruce Lilly <blilly!bruce@uu.psi.com>)
22564703Seric
22664705SericX *	Sun YBTS daemon uses -ba.  [Martin Kiff <MGK@newton.npl.co.uk>]
22764705Seric
22864705SericB *	EXPN adds @domain to all mailers, including prog.  Is this right?
22964705Seric	[Bob Henry]
23064705Seric
23164705SericB *	EXPN adds @localhost instead of @$M.  [Pel Emanuelsson]
23264705Seric
23364705SericE *	Change body put code to time out around individual puts.  This will
23464705Seric	make the timeout algorithm more responsive and more resilient.
23564705Seric	Unfortunately, it's also a pain in the butt.
23664705Seric
23764705SericX *	Some way to relay unfound local users to another site.
23864705Seric
23964705SericX *	Disable all default RW sets except mailer-specific?
240