xref: /csrg-svn/usr.sbin/sendmail/src/TODO (revision 65353)
1*65353Seric(Version 8.14 of 01/03/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
46*65353SericB ****	Aliases with .REDIRECT fail during newaliases if the "n" flag
47*65353Seric	is given.  Problem is, sometimes you want them to, sometimes
48*65353Seric	you don't.  Perhaps two flavors of "error" mailer?
49*65353Seric
50*65353SericB ****	Calls to gethostbyname with a trailing dot fail if you are
51*65353Seric	not running DNS.
52*65353Seric
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
6765188SericX ***	Mailer flag that does a "ping" equivalent -- if it fails, wait
6865188Seric	30 seconds and try again (for dialup PPP connections).  Could
6965188Seric	just try the connection and then immediately retry on some
7065188Seric	kinds of failures.
7165188Seric
7265119SericX ***	Create a macro that has message size.
7365119Seric	Peter Wemm <peter@DIALix.oz.au>
7465119Seric
7564718SericE ***	Dynamically allocate MAXNAME buffers for headers.
7664718Seric
7765119SericE ***	Dynamically allocate "line" buffer in readaliases().
7865119Seric
7964705SericX ***	Add ability to disable Return-Receipt-To: on a privacy flag. [8.8]
8064652Seric
8164718SericX ***	Add -P to set precedence (e.g., -Pbulk). [8.8]  (BCX)
8264652Seric
8364718SericX ***	Runtime option to enable/disable IDENT protocol.
8464718Seric
8564718SericE ***	Don't send ErrMsgFile to postmaster bounces.  (Josh Smith,
8664718Seric	josh@osiris.ac.hmc.edu).
8764718Seric
8864718SericX ***	Add "user" map to look up a user name via getpwnam -- so that
8964718Seric	non-local names can be forwarded to another site.  [8.8]
9064718Seric
9164799SericE ***	Have daemons that start up check the alias database for
9264799Seric	correctness and auto-rebuild if necessary.  This is to handle
9364799Seric	the case of a system crash during an alias database rebuild.
9464799Seric
9564799SericE ***	Eliminate E qf line and e_errorqueue; use e_errorsto a la
9664799Seric	e_receiptto.  This simplifies and gives symmetry.  (Eric
9764799Seric	Wassenaar)
9864799Seric
9965119SericB ***	Fix syslog buffer overflow problems.
10065119Seric
10165165SericX ***	DECNET_RELAY support in configs.
10265165Seric
103*65353SericX **	(sigh) BSMTP.
104*65353Seric
10565226SericX **	"E" configuration line that sets environment variables.
10665226Seric
10765219SericE **	Change listen() high-load backoff to accept and issue a 4xx
10865219Seric	message so that it responds more quickly.
10965219Seric
11065188SericE **	Change "/usr/tmp/dead.letter" to be based on _PATH_VARTMP.
11165188Seric
11265119SericB **	Commas in NAME envariable cause problems (Peter Wan
11365119Seric	<peter@cc.gatech.edu>).  Merge with suggestions to use
11465119Seric	MIME-format for 8-bit characters?
11565119Seric
11665119SericE **	Save address information that comes back as the "additional
11765119Seric	records" part of an MX lookup, to avoid additional name server
11865119Seric	attempts.  If there is an MX record without an additional A
11965119Seric	record, delete it (this avoids a problem with misconfigured
12065119Seric	DNS situations).
12165119Seric
12265119SericX **	Allow a way to extend the $Z macro with local configuration
12365119Seric	information.
12465119Seric
12564755SericX **	Allow $x in -bt mode to expand macro "x".  (BCX)  [8.8]
12664755Seric
12764755SericX **	Allow /address in -bt mode to expand address through ruleset 0,
12864755Seric	aliases, etc. and display results.  [8.8]
12964755Seric
13064755SericX **	"R mailer address" in -bt mode does remotename on address.
13164755Seric
13264755SericE **	Adjust "infinite loop in rule" code to handle entire ruleset
13364755Seric	(Code from Michael Corrigan).
13464755Seric
13564718SericE **	Allow :include: from command line (not SMTP) to assist in
13664718Seric	"personal list" management -- i.e., creating lists that
13764718Seric	cannot be EXPNed.
13864718Seric
13964718SericX **	Database (keyed lookup) auto-rebuild.
14064718Seric
14164705SericX **	Find a good test suite and include in the distribution.
14264652Seric
14364718SericS **	You can use symbolic links to point into protected directories.
14464718Seric	(AEJ)
14564652Seric
14664705SericX **	Extend OI to allow separate settings for canonification, MX, and A
14764718Seric	lookups.  [8.8?]
14864652Seric
14964718SericX **	Add $!x class to match any number of words not in class x. (KRE)
15064683Seric
15164705SericX **	LOCAL_RULE_5 (Spencer Sun, spencer@phoenix.Princeton.EDU)
15264703Seric
15364705SericX **	Add "bestmx" map -- returns "best MX host" for this address.
15464705Seric	Allows you to do automatic detection of when you are the best
15564705Seric	MX for a given address.  [8.7?]
15664703Seric
157*65353SericX **	Some way to diddle resolver flags on a per-lookup basis, such
158*65353Seric	as a flag to the map declaration.  (Rick McCarty)
159*65353Seric	- Is this really a good idea?  DNSRCH can be turned off by
160*65353Seric	  putting a dot at the end.  AAONLY?
161*65353Seric
16264718SericX **	Extend makemap to "gather" values -- i.e., merge entries that
16364718Seric	have the same keys. [8.8]  (BCX)
16464703Seric
16564718SericE **	Allow error messages on individual addresses in the qf file.
16664718Seric	(BCX)
16764718Seric
16864718SericX **	Multi-character option names.  [9.1]
16964718Seric
17064718SericX **	User database extensions for mailing lists:
17164718Seric	list:precedence -- Precedence: value for new message
17264718Seric	list:envelopefrom -- envelope "from" value for new message
17364718Seric	others?  [8.8]
17464718Seric
175*65353SericX **	Command line switch to set precedence (for mailing list
176*65353Seric	generation).  (BCX)
177*65353Seric
17864755SericB **	Restore `T' line to eliminate X-Authentication-Warning: at
17964755Seric	inappropriate times.  (Christophe Wolfhugel)
18064755Seric	- T could become a shorthand for Ct -- i.e., create a new
18164755Seric	  predefined class.
18264755Seric	- Eliminate "<user> set sender to <address>" message entirely?
18364755Seric	  (this is the workaround)
18464755Seric
18565119SericB **	Return-Path: header should have <> added if not already there.
18665119Seric
18765119SericX **	Add heuristic to determine if other end is a sendmail; use
18865119Seric	that to decide whether or not to honor F=I mailer flag.
18965119Seric	[der Mouse <mouse@collatz.mcrcim.mcgill.edu>]
19065119Seric
19165119SericX **	Automatically drop into MIME mode if you have a full name
19265119Seric	with 8-bit characters.  See envelope.c 8.19.1.1 and util.c
19365119Seric	8.17.1.1.  From Anders Ellefsrud <anders@ifi.uio.no>.
19465119Seric
19565119SericX **	-b? flag to read a header and show you what it will look like
19665119Seric	after all rewriting for an indicated address.
19765119Seric
19865188SericE **	Log $u in logsender() (for=<someaddress>).
19965188Seric
20065119SericX *	Allow $> anywhere in RHS.  John Boeske <jboeske@ualberta.ca>.
20165119Seric
20264755SericX *	-V flag to print state of all (?) compilation flags.
20364755Seric
20464718SericX *	Handle Expires: header field (if still in queue).
20564718Seric
20664705SericX *	WIN/3B support (non-atomic rename, no h_addr_list, others?)
20764705Seric	(Bruce Lilly <blilly!bruce@uu.psi.com>)
20864703Seric
20964705SericX *	Sun YBTS daemon uses -ba.  [Martin Kiff <MGK@newton.npl.co.uk>]
21064705Seric
21164705SericB *	EXPN adds @domain to all mailers, including prog.  Is this right?
21264705Seric	[Bob Henry]
21364705Seric
21464705SericB *	EXPN adds @localhost instead of @$M.  [Pel Emanuelsson]
21564705Seric
21664705SericE *	Change body put code to time out around individual puts.  This will
21764705Seric	make the timeout algorithm more responsive and more resilient.
21864705Seric	Unfortunately, it's also a pain in the butt.
21964705Seric
22064705SericX *	Some way to relay unfound local users to another site.
22164705Seric
22264705SericX *	Disable all default RW sets except mailer-specific?
223