xref: /csrg-svn/usr.sbin/sendmail/src/TODO (revision 65219)
1*65219Seric(Version 8.12 of 12/27/93)
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
4665119SericE ****	Move delivery forking from sendenvelope to sendall so that
4765119Seric	the connection cache works between split envelopes, and to
4865119Seric	avoid a flurry of processes should you be sending to lots of
4965119Seric	sub-lists.
5065119Seric
5165119SericX ****	Add uucp-bang mailer that strips off any domain name from
5265119Seric	the envelope recipient address first; this is for use in
5365119Seric	mailer table entries.
5465119Seric
5565188SericX ****	"quote" map (inverse of dequote).  Lets you turn node::user
5665188Seric	into "node::user"@DECNET.gateway
5765188Seric
58*65219SericX ****	Named rulesets.
59*65219Seric
6065188SericX ***	Mailer flag that does a "ping" equivalent -- if it fails, wait
6165188Seric	30 seconds and try again (for dialup PPP connections).  Could
6265188Seric	just try the connection and then immediately retry on some
6365188Seric	kinds of failures.
6465188Seric
6565119SericX ***	Create a macro that has message size.
6665119Seric	Peter Wemm <peter@DIALix.oz.au>
6765119Seric
6864718SericE ***	Dynamically allocate MAXNAME buffers for headers.
6964718Seric
7065119SericE ***	Dynamically allocate "line" buffer in readaliases().
7165119Seric
7264705SericX ***	Add ability to disable Return-Receipt-To: on a privacy flag. [8.8]
7364652Seric
7464718SericX ***	Add -P to set precedence (e.g., -Pbulk). [8.8]  (BCX)
7564652Seric
7664718SericX ***	Runtime option to enable/disable IDENT protocol.
7764718Seric
7864718SericE ***	Don't send ErrMsgFile to postmaster bounces.  (Josh Smith,
7964718Seric	josh@osiris.ac.hmc.edu).
8064718Seric
8164718SericX ***	Add "user" map to look up a user name via getpwnam -- so that
8264718Seric	non-local names can be forwarded to another site.  [8.8]
8364718Seric
8464799SericE ***	Have daemons that start up check the alias database for
8564799Seric	correctness and auto-rebuild if necessary.  This is to handle
8664799Seric	the case of a system crash during an alias database rebuild.
8764799Seric
8864799SericE ***	Eliminate E qf line and e_errorqueue; use e_errorsto a la
8964799Seric	e_receiptto.  This simplifies and gives symmetry.  (Eric
9064799Seric	Wassenaar)
9164799Seric
9265119SericB ***	Fix syslog buffer overflow problems.
9365119Seric
9465165SericX ***	DECNET_RELAY support in configs.
9565165Seric
96*65219SericE **	Change listen() high-load backoff to accept and issue a 4xx
97*65219Seric	message so that it responds more quickly.
98*65219Seric
9965188SericE **	Change "/usr/tmp/dead.letter" to be based on _PATH_VARTMP.
10065188Seric
10165119SericB **	Commas in NAME envariable cause problems (Peter Wan
10265119Seric	<peter@cc.gatech.edu>).  Merge with suggestions to use
10365119Seric	MIME-format for 8-bit characters?
10465119Seric
10565119SericE **	Save address information that comes back as the "additional
10665119Seric	records" part of an MX lookup, to avoid additional name server
10765119Seric	attempts.  If there is an MX record without an additional A
10865119Seric	record, delete it (this avoids a problem with misconfigured
10965119Seric	DNS situations).
11065119Seric
11165119SericX **	Allow a way to extend the $Z macro with local configuration
11265119Seric	information.
11365119Seric
11464755SericX **	Allow $x in -bt mode to expand macro "x".  (BCX)  [8.8]
11564755Seric
11664755SericX **	Allow /address in -bt mode to expand address through ruleset 0,
11764755Seric	aliases, etc. and display results.  [8.8]
11864755Seric
11964755SericX **	"R mailer address" in -bt mode does remotename on address.
12064755Seric
12164755SericE **	Adjust "infinite loop in rule" code to handle entire ruleset
12264755Seric	(Code from Michael Corrigan).
12364755Seric
12464718SericE **	Allow :include: from command line (not SMTP) to assist in
12564718Seric	"personal list" management -- i.e., creating lists that
12664718Seric	cannot be EXPNed.
12764718Seric
12864718SericX **	Database (keyed lookup) auto-rebuild.
12964718Seric
13064705SericX **	Find a good test suite and include in the distribution.
13164652Seric
13264718SericS **	You can use symbolic links to point into protected directories.
13364718Seric	(AEJ)
13464652Seric
13564705SericX **	Extend OI to allow separate settings for canonification, MX, and A
13664718Seric	lookups.  [8.8?]
13764652Seric
13864718SericX **	Add $!x class to match any number of words not in class x. (KRE)
13964683Seric
14064705SericX **	LOCAL_RULE_5 (Spencer Sun, spencer@phoenix.Princeton.EDU)
14164703Seric
14264705SericX **	Add "bestmx" map -- returns "best MX host" for this address.
14364705Seric	Allows you to do automatic detection of when you are the best
14464705Seric	MX for a given address.  [8.7?]
14564703Seric
14664718SericX **	Extend makemap to "gather" values -- i.e., merge entries that
14764718Seric	have the same keys. [8.8]  (BCX)
14864703Seric
14964718SericE **	Allow error messages on individual addresses in the qf file.
15064718Seric	(BCX)
15164718Seric
15264718SericX **	Multi-character option names.  [9.1]
15364718Seric
15464718SericX **	User database extensions for mailing lists:
15564718Seric	list:precedence -- Precedence: value for new message
15664718Seric	list:envelopefrom -- envelope "from" value for new message
15764718Seric	others?  [8.8]
15864718Seric
15964755SericB **	Restore `T' line to eliminate X-Authentication-Warning: at
16064755Seric	inappropriate times.  (Christophe Wolfhugel)
16164755Seric	- T could become a shorthand for Ct -- i.e., create a new
16264755Seric	  predefined class.
16364755Seric	- Eliminate "<user> set sender to <address>" message entirely?
16464755Seric	  (this is the workaround)
16564755Seric
16665119SericB **	Return-Path: header should have <> added if not already there.
16765119Seric
16865119SericX **	Add heuristic to determine if other end is a sendmail; use
16965119Seric	that to decide whether or not to honor F=I mailer flag.
17065119Seric	[der Mouse <mouse@collatz.mcrcim.mcgill.edu>]
17165119Seric
17265119SericX **	Automatically drop into MIME mode if you have a full name
17365119Seric	with 8-bit characters.  See envelope.c 8.19.1.1 and util.c
17465119Seric	8.17.1.1.  From Anders Ellefsrud <anders@ifi.uio.no>.
17565119Seric
17665119SericX **	-b? flag to read a header and show you what it will look like
17765119Seric	after all rewriting for an indicated address.
17865119Seric
17965188SericE **	Log $u in logsender() (for=<someaddress>).
18065188Seric
18165119SericX *	Allow $> anywhere in RHS.  John Boeske <jboeske@ualberta.ca>.
18265119Seric
18364755SericX *	-V flag to print state of all (?) compilation flags.
18464755Seric
18564718SericX *	Handle Expires: header field (if still in queue).
18664718Seric
18764705SericX *	WIN/3B support (non-atomic rename, no h_addr_list, others?)
18864705Seric	(Bruce Lilly <blilly!bruce@uu.psi.com>)
18964703Seric
19064705SericX *	Sun YBTS daemon uses -ba.  [Martin Kiff <MGK@newton.npl.co.uk>]
19164705Seric
19264705SericB *	EXPN adds @domain to all mailers, including prog.  Is this right?
19364705Seric	[Bob Henry]
19464705Seric
19564705SericB *	EXPN adds @localhost instead of @$M.  [Pel Emanuelsson]
19664705Seric
19764705SericE *	Change body put code to time out around individual puts.  This will
19864705Seric	make the timeout algorithm more responsive and more resilient.
19964705Seric	Unfortunately, it's also a pain in the butt.
20064705Seric
20164705SericX *	Some way to relay unfound local users to another site.
20264705Seric
20364705SericX *	Disable all default RW sets except mailer-specific?
204