xref: /csrg-svn/usr.sbin/sendmail/src/TODO (revision 65226)
1*65226Seric(Version 8.13 of 12/30/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
5865219SericX ****	Named rulesets.
5965219Seric
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*65226SericX **	"E" configuration line that sets environment variables.
97*65226Seric
9865219SericE **	Change listen() high-load backoff to accept and issue a 4xx
9965219Seric	message so that it responds more quickly.
10065219Seric
10165188SericE **	Change "/usr/tmp/dead.letter" to be based on _PATH_VARTMP.
10265188Seric
10365119SericB **	Commas in NAME envariable cause problems (Peter Wan
10465119Seric	<peter@cc.gatech.edu>).  Merge with suggestions to use
10565119Seric	MIME-format for 8-bit characters?
10665119Seric
10765119SericE **	Save address information that comes back as the "additional
10865119Seric	records" part of an MX lookup, to avoid additional name server
10965119Seric	attempts.  If there is an MX record without an additional A
11065119Seric	record, delete it (this avoids a problem with misconfigured
11165119Seric	DNS situations).
11265119Seric
11365119SericX **	Allow a way to extend the $Z macro with local configuration
11465119Seric	information.
11565119Seric
11664755SericX **	Allow $x in -bt mode to expand macro "x".  (BCX)  [8.8]
11764755Seric
11864755SericX **	Allow /address in -bt mode to expand address through ruleset 0,
11964755Seric	aliases, etc. and display results.  [8.8]
12064755Seric
12164755SericX **	"R mailer address" in -bt mode does remotename on address.
12264755Seric
12364755SericE **	Adjust "infinite loop in rule" code to handle entire ruleset
12464755Seric	(Code from Michael Corrigan).
12564755Seric
12664718SericE **	Allow :include: from command line (not SMTP) to assist in
12764718Seric	"personal list" management -- i.e., creating lists that
12864718Seric	cannot be EXPNed.
12964718Seric
13064718SericX **	Database (keyed lookup) auto-rebuild.
13164718Seric
13264705SericX **	Find a good test suite and include in the distribution.
13364652Seric
13464718SericS **	You can use symbolic links to point into protected directories.
13564718Seric	(AEJ)
13664652Seric
13764705SericX **	Extend OI to allow separate settings for canonification, MX, and A
13864718Seric	lookups.  [8.8?]
13964652Seric
14064718SericX **	Add $!x class to match any number of words not in class x. (KRE)
14164683Seric
14264705SericX **	LOCAL_RULE_5 (Spencer Sun, spencer@phoenix.Princeton.EDU)
14364703Seric
14464705SericX **	Add "bestmx" map -- returns "best MX host" for this address.
14564705Seric	Allows you to do automatic detection of when you are the best
14664705Seric	MX for a given address.  [8.7?]
14764703Seric
14864718SericX **	Extend makemap to "gather" values -- i.e., merge entries that
14964718Seric	have the same keys. [8.8]  (BCX)
15064703Seric
15164718SericE **	Allow error messages on individual addresses in the qf file.
15264718Seric	(BCX)
15364718Seric
15464718SericX **	Multi-character option names.  [9.1]
15564718Seric
15664718SericX **	User database extensions for mailing lists:
15764718Seric	list:precedence -- Precedence: value for new message
15864718Seric	list:envelopefrom -- envelope "from" value for new message
15964718Seric	others?  [8.8]
16064718Seric
16164755SericB **	Restore `T' line to eliminate X-Authentication-Warning: at
16264755Seric	inappropriate times.  (Christophe Wolfhugel)
16364755Seric	- T could become a shorthand for Ct -- i.e., create a new
16464755Seric	  predefined class.
16564755Seric	- Eliminate "<user> set sender to <address>" message entirely?
16664755Seric	  (this is the workaround)
16764755Seric
16865119SericB **	Return-Path: header should have <> added if not already there.
16965119Seric
17065119SericX **	Add heuristic to determine if other end is a sendmail; use
17165119Seric	that to decide whether or not to honor F=I mailer flag.
17265119Seric	[der Mouse <mouse@collatz.mcrcim.mcgill.edu>]
17365119Seric
17465119SericX **	Automatically drop into MIME mode if you have a full name
17565119Seric	with 8-bit characters.  See envelope.c 8.19.1.1 and util.c
17665119Seric	8.17.1.1.  From Anders Ellefsrud <anders@ifi.uio.no>.
17765119Seric
17865119SericX **	-b? flag to read a header and show you what it will look like
17965119Seric	after all rewriting for an indicated address.
18065119Seric
18165188SericE **	Log $u in logsender() (for=<someaddress>).
18265188Seric
18365119SericX *	Allow $> anywhere in RHS.  John Boeske <jboeske@ualberta.ca>.
18465119Seric
18564755SericX *	-V flag to print state of all (?) compilation flags.
18664755Seric
18764718SericX *	Handle Expires: header field (if still in queue).
18864718Seric
18964705SericX *	WIN/3B support (non-atomic rename, no h_addr_list, others?)
19064705Seric	(Bruce Lilly <blilly!bruce@uu.psi.com>)
19164703Seric
19264705SericX *	Sun YBTS daemon uses -ba.  [Martin Kiff <MGK@newton.npl.co.uk>]
19364705Seric
19464705SericB *	EXPN adds @domain to all mailers, including prog.  Is this right?
19564705Seric	[Bob Henry]
19664705Seric
19764705SericB *	EXPN adds @localhost instead of @$M.  [Pel Emanuelsson]
19864705Seric
19964705SericE *	Change body put code to time out around individual puts.  This will
20064705Seric	make the timeout algorithm more responsive and more resilient.
20164705Seric	Unfortunately, it's also a pain in the butt.
20264705Seric
20364705SericX *	Some way to relay unfound local users to another site.
20464705Seric
20564705SericX *	Disable all default RW sets except mailer-specific?
206