(Version 8.22 of 3/12/94)

Key:
  X -- extension (user visible change)
  B -- bug fix
  S -- security fix
  E -- enhancement to existing algorithm


X ****	8 -> 7 bit MIME conversion.

E ****	Change NoReturn to be an envelope flag. [8.7]

X ****	Add M_NOLOOPBACKCHK (k) mailer flag to turn off check of name in
	HELO command. [8.8]

X ****	Merge Sun changes.  [8.7]

X ****	Macro giving size of the message in bytes.

X ****	Create a "service switch" abstraction that will interface with
	Sun NSS, Ultrix /etc/svc.conf, etc.  This will allow you to
	turn off DNS entirely, a la ``OIoff''.  [8.7]

X ****	Should have new mailer flags to override LocalMailer stuff:
	- M_ALIASABLE (A) -- can use as the LHS of an alias.
	- M_HASPWENT (w) -- should have a /etc/passwd entry.  If not found
	  there, implies user unknown.  Also implies .forward and UDB
	  searching, search for |, /, and :include:, etc.).
	- Actually, UDB searching and |, /, and :include: mapping should
	  probably be on another flag.  (Cannot be 'l' for back compat
	  reasons.)
	- Need for $@host part of triple and Return-Receipt-To: processing
	  should also be split apart.
	[8.8]

X ****	Mailer flag to enable/disable surrounding route-addrs with
	angle brackets in setsender().  UUCP cleanup scripts treat
	these as file redirection.

X ****	Mailer flag to override MX lookups.

E ****	Fix parseaddr to return a dummy mailer with QBADADDR set for
	all cases except null input; change calls to be more sceptical
	about the return value, checking this bit instead of just
	checking for == NULL.  (Eric Wassenaar)  [8.7]

X ****	Run time configurable locking -- e.g., compile in HASFLOCK and
	HASLOCKF, and then choose at runtime between these.

B ****	Aliases with .REDIRECT fail during newaliases if the "n" flag
	is given.  Problem is, sometimes you want them to, sometimes
	you don't.  Perhaps two flavors of "error" mailer?

B ****	Calls to gethostbyname with a trailing dot fail if you are
	not running DNS.

E ****	Move delivery forking from sendenvelope to sendall so that
	the connection cache works between split envelopes, and to
	avoid a flurry of processes should you be sending to lots of
	sub-lists.

X ****	Add uucp-bang mailer that strips off any domain name from
	the envelope recipient address first; this is for use in
	mailer table entries.

X ****	"quote" map (inverse of dequote).  Lets you turn node::user
	into "node::user"@DECNET.gateway

X ****	Named rulesets.

? ****	Should $( [1.2.3.4] $) convert the address to a name?

E ****	Change collect() handling to use high level timeouts instead
	of per-line timeouts -- the current mechanism is swamping
	the machine with system calls.  (Look at KJS code.)

E ***	Long term host status -- store host status on disk for sharing
	between runs.

X ***	Extend I option to allow setting of retry and timeout values.
	drl@vuse.vanderbilt.edu (David R. Linn).

X ***	Total connection cache lifespan timeout -- a way to give a
	timeout on connections regardless of whether they are active
	or not.  For single threaded servers such as Microsoft SMTP
	gateway.  Douglas Anderson <dlander@afterlife.ncsc.mil>.

X ***	Mailer flag that does a "ping" equivalent -- if it fails, wait
	30 seconds and try again (for dialup PPP connections).  Could
	just try the connection and then immediately retry on some
	kinds of failures.

X ***	Create a macro that has message size.
	Peter Wemm <peter@DIALix.oz.au>

E ***	Dynamically allocate MAXNAME buffers for headers.

E ***	Dynamically allocate "line" buffer in readaliases().

X ***	Add ability to disable Return-Receipt-To: on a privacy flag. [8.8]

X ***	Add -P to set precedence (e.g., -Pbulk). [8.8]  (BCX)

X ***	Runtime option to enable/disable IDENT protocol.

E ***	Don't send ErrMsgFile to postmaster bounces.  (Josh Smith,
	josh@osiris.ac.hmc.edu).

X ***	Add "user" map to look up a user name via getpwnam -- so that
	non-local names can be forwarded to another site.  [8.8]

E ***	Have daemons that start up check the alias database for
	correctness and auto-rebuild if necessary.  This is to handle
	the case of a system crash during an alias database rebuild.

E ***	Eliminate E qf line and e_errorqueue; use e_errorsto a la
	e_receiptto.  This simplifies and gives symmetry.  (Eric
	Wassenaar)

X ***	DECNET_RELAY support in configs.

X ***	-wN command line flag to set the width of mailq output.
	(Allan Johannesen)

E ***	Move mailertable lookup after UUCP-specific class checks?
	(Kimmo Suominen <kim@tac.nyc.ny.us>)

E ***	Users in more than one list with different owners get duplicate
	deliveries -- maybe just assign them arbitrarily to one
	envelope or the other?

X **	Make MAXBADCOMMANDS run time configurable.

E **	Allow mailertable entries of the form ``error:message''.

X **	Have .forward files re-queue if the home directory isn't
	accessible?  On some option...
	(Q.G.Campbell@newcastle.ac.uk)

X **	Have local delivery queue if NIS is down?  On some option...
	(Q.G.Campbell@newcastle.ac.uk)

E **	Have nullclient configuration resolve local names to the local
	mailer and then redirect them in ruleset 5; this allows you to
	redirect root differently depending on the client.  It's not
	clear this is really a good idea though.

E **	Move CurHostAddr into mci struct, and make CurMCI variable
	point to this, so that logging will give the correct address
	instead of (0) for cached connections.  Motonori Nakamura.

X **	Allow use of a generalized network service for aliasing?
	How would the protocol be defined?
	James Gritton <gritton@byu.edu>.

E **	Make "local configuration error" a temporary failure?
	(add EX_CONFIG to the markfailure list)

X **	(sigh) BSMTP.

X **	"E" configuration line that sets environment variables.

E **	Change listen() high-load backoff to accept and issue a 4xx
	message so that it responds more quickly.

E **	Change "/usr/tmp/dead.letter" to be based on _PATH_VARTMP.

B **	Commas in NAME envariable cause problems (Peter Wan
	<peter@cc.gatech.edu>).  Merge with suggestions to use
	MIME-format for 8-bit characters?

E **	Save address information that comes back as the "additional
	records" part of an MX lookup, to avoid additional name server
	attempts.  If there is an MX record without an additional A
	record, delete it (this avoids a problem with misconfigured
	DNS situations).

X **	Allow a way to extend the $Z macro with local configuration
	information.

X **	Allow $x in -bt mode to expand macro "x".  (BCX)  [8.8]

X **	Allow /address in -bt mode to expand address through ruleset 0,
	aliases, etc. and display results.  [8.8]

X **	"R mailer address" in -bt mode does remotename on address.

E **	Adjust "infinite loop in rule" code to handle entire ruleset
	(Code from Michael Corrigan).

E **	Allow :include: from command line (not SMTP) to assist in
	"personal list" management -- i.e., creating lists that
	cannot be EXPNed.

X **	Database (keyed lookup) auto-rebuild.

X **	Find a good test suite and include in the distribution.

S **	You can use symbolic links to point into protected directories.
	(AEJ)

X **	Extend OI to allow separate settings for canonification, MX, and A
	lookups.  [8.8?]

X **	Add $!x class to match any number of words not in class x. (KRE)

X **	LOCAL_RULE_5 (Spencer Sun, spencer@phoenix.Princeton.EDU)

X **	Add "bestmx" map -- returns "best MX host" for this address.
	Allows you to do automatic detection of when you are the best
	MX for a given address.  [8.7?]

X **	Some way to diddle resolver flags on a per-lookup basis, such
	as a flag to the map declaration.  (Rick McCarty)
	- Is this really a good idea?  DNSRCH can be turned off by
	  putting a dot at the end.  AAONLY?

X **	Extend makemap to "gather" values -- i.e., merge entries that
	have the same keys. [8.8]  (BCX)

E **	Allow error messages on individual addresses in the qf file.
	(BCX)

X **	Multi-character option names.  [9.1]

X **	User database extensions for mailing lists:
	list:precedence -- Precedence: value for new message
	list:envelopefrom -- envelope "from" value for new message
	others?  [8.8]

X **	Command line switch to set precedence (for mailing list
	generation).  (BCX)

B **	Restore `T' line to eliminate X-Authentication-Warning: at
	inappropriate times.  (Christophe Wolfhugel)
	- T could become a shorthand for Ct -- i.e., create a new
	  predefined class.
	- Eliminate "<user> set sender to <address>" message entirely?
	  (this is the workaround)

B **	Return-Path: header should have <> added if not already there.

X **	Add heuristic to determine if other end is a sendmail; use
	that to decide whether or not to honor F=I mailer flag.
	[der Mouse <mouse@collatz.mcrcim.mcgill.edu>]

X **	Automatically drop into MIME mode if you have a full name
	with 8-bit characters.  See envelope.c 8.19.1.1 and util.c
	8.17.1.1.  From Anders Ellefsrud <anders@ifi.uio.no>.

X **	-b? flag to read a header and show you what it will look like
	after all rewriting for an indicated address.

E **	Log $u in logsender() (for=<someaddress>).

B **	Include SOCKADDR in MCI struct for logging (currently gives
	a sockaddr of zero when printing from the cache).

X **	Allow option to set the characters that are autoquoted in
	addresses?

X *	Map that does MB/MR lookups.  Rick McCarty <mccarty@io.com>.

X *	Allow $> anywhere in RHS.  John Boeske <jboeske@ualberta.ca>.

X *	-V flag to print state of all (?) compilation flags.

X *	Handle Expires: header field (if still in queue).

X *	WIN/3B support (non-atomic rename, no h_addr_list, others?)
	(Bruce Lilly <blilly!bruce@uu.psi.com>)

X *	Sun YBTS daemon uses -ba.  [Martin Kiff <MGK@newton.npl.co.uk>]

B *	EXPN adds @domain to all mailers, including prog.  Is this right?
	[Bob Henry]

B *	EXPN adds @localhost instead of @$M.  [Pel Emanuelsson]

E *	Change body put code to time out around individual puts.  This will
	make the timeout algorithm more responsive and more resilient.
	Unfortunately, it's also a pain in the butt.

X *	Some way to relay unfound local users to another site.

X *	Disable all default RW sets except mailer-specific?
