xref: /csrg-svn/usr.sbin/sendmail/src/TODO (revision 69476)
1*69476Seric(Version 8.39 of 05/15/95)
233732Sbostic
368838Seric==============================================================================
468838SericFor Release 8.7:
568838Seric  - another pass through Sun changes
668838Seric  - another pass through documentation
769400Seric  - change dotted users to plussed users
869400Seric  - rip out MIME (on compile flag)
968838Seric==============================================================================
1068838Seric
1164705SericKey:
1264705Seric  X -- extension (user visible change)
1364705Seric  B -- bug fix
1464705Seric  S -- security fix
1564705Seric  E -- enhancement to existing algorithm
1657668Seric
1765958Seric
1869400SericE ****	forward.5 man page.
1969400Seric
2068089SericX ****	Multiple queues.
2168089Seric
2264705SericX ****	Merge Sun changes.  [8.7]
2359609Seric
2464755SericE ****	Fix parseaddr to return a dummy mailer with QBADADDR set for
2564755Seric	all cases except null input; change calls to be more sceptical
2664755Seric	about the return value, checking this bit instead of just
2764755Seric	checking for == NULL.  (Eric Wassenaar)  [8.7]
2864755Seric
2964799SericX ****	Run time configurable locking -- e.g., compile in HASFLOCK and
3064799Seric	HASLOCKF, and then choose at runtime between these.
3164799Seric
3265353SericB ****	Aliases with .REDIRECT fail during newaliases if the "n" flag
3365353Seric	is given.  Problem is, sometimes you want them to, sometimes
3465353Seric	you don't.  Perhaps two flavors of "error" mailer?
3565353Seric
3665353SericB ****	Calls to gethostbyname with a trailing dot fail if you are
3765353Seric	not running DNS.
3865353Seric
3965119SericX ****	Add uucp-bang mailer that strips off any domain name from
4065119Seric	the envelope recipient address first; this is for use in
4165119Seric	mailer table entries.
4265119Seric
4365188SericX ****	"quote" map (inverse of dequote).  Lets you turn node::user
4465188Seric	into "node::user"@DECNET.gateway
4565188Seric
4668527SericE ****	Change userdb code to use underlying maps, at least for
4768527Seric	:mailname; this lets people use NIS to supply generics
4868527Seric	information.  (Or should the generics code just be broken
4968527Seric	out into the config file?)
5068527Seric
5166013Seric? ****	Should $( [1.2.3.4] $) convert the address to a name?
5266013Seric
5368838SericX ***	Multiple queue runners.
5468838Seric
5568089SericE ***	Have recipient lines rewritten by the user database.
5668089Seric
5767420SericE ***	Arrange to run queue jobs as the owner of that queue file.  This
5867420Seric	probably requires forcing a fork in order to be able to completely
5967420Seric	restore the uid/gid portably without leaking out root privileges.
6067420Seric
6166337SericE ***	Long term host status -- store host status on disk for sharing
6266337Seric	between runs.
6366337Seric
6465869SericX ***	Extend I option to allow setting of retry and timeout values.
6565869Seric	drl@vuse.vanderbilt.edu (David R. Linn).
6665869Seric
6765753SericX ***	Total connection cache lifespan timeout -- a way to give a
6865753Seric	timeout on connections regardless of whether they are active
6965753Seric	or not.  For single threaded servers such as Microsoft SMTP
7065753Seric	gateway.  Douglas Anderson <dlander@afterlife.ncsc.mil>.
7165753Seric
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
7964718SericX ***	Add -P to set precedence (e.g., -Pbulk). [8.8]  (BCX)
8064652Seric
8164718SericE ***	Don't send ErrMsgFile to postmaster bounces.  (Josh Smith,
8264718Seric	josh@osiris.ac.hmc.edu).
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
9265165SericX ***	DECNET_RELAY support in configs.
9365165Seric
9465753SericX ***	-wN command line flag to set the width of mailq output.
9565753Seric	(Allan Johannesen)
9665753Seric
9766328SericE ***	Move mailertable lookup after UUCP-specific class checks?
9866328Seric	(Kimmo Suominen <kim@tac.nyc.ny.us>)
9966328Seric
10066328SericE ***	Users in more than one list with different owners get duplicate
10166328Seric	deliveries -- maybe just assign them arbitrarily to one
10266328Seric	envelope or the other?
10366328Seric
10468401SericE ***	Mailer flag to turn off MX lookups.
10568401Seric
10669400SericE **	Hooks for "mail status daemon" -- send dgrams to a WKS that will
10769400Seric	announce when jobs are created/destroyed.  Someone needs to write
10869400Seric	the daemon though....
10969400Seric
11069400SericX **	Mailer timeout (to handle things like local mailers that hang).
11169400Seric	Perhaps a per-mailer value?
11269400Seric
11368838SericE **	If you get a connection from a host for which you have queued
11468838Seric	mail, deliver everything to that host.  Intended for dialup SLIP
11568838Seric	style connections.
11668838Seric
11768527SericX **	Rewriting rules based on incoming mailer.
11868527Seric
11968227SericX **	Have a ruleset (6?) that gets both sender and recipient
12068227Seric	addresses to check compatibility.  Can you do enough interesting
12168227Seric	things with this?
12268227Seric
12366328SericX **	Make MAXBADCOMMANDS run time configurable.
12466328Seric
12566328SericE **	Allow mailertable entries of the form ``error:message''.
12666328Seric
12766328SericX **	Have .forward files re-queue if the home directory isn't
12866328Seric	accessible?  On some option...
12966328Seric	(Q.G.Campbell@newcastle.ac.uk)
13066328Seric
13166328SericX **	Have local delivery queue if NIS is down?  On some option...
13266328Seric	(Q.G.Campbell@newcastle.ac.uk)
13366328Seric
13466328SericE **	Have nullclient configuration resolve local names to the local
13566328Seric	mailer and then redirect them in ruleset 5; this allows you to
13666328Seric	redirect root differently depending on the client.  It's not
13766328Seric	clear this is really a good idea though.
13866328Seric
13966013SericE **	Move CurHostAddr into mci struct, and make CurMCI variable
14066013Seric	point to this, so that logging will give the correct address
14166013Seric	instead of (0) for cached connections.  Motonori Nakamura.
14266013Seric
14365907SericX **	Allow use of a generalized network service for aliasing?
14465907Seric	How would the protocol be defined?
14565907Seric	James Gritton <gritton@byu.edu>.
14665907Seric
14765555SericE **	Make "local configuration error" a temporary failure?
14865555Seric	(add EX_CONFIG to the markfailure list)
14965555Seric
15065353SericX **	(sigh) BSMTP.
15165353Seric
15265219SericE **	Change listen() high-load backoff to accept and issue a 4xx
15365219Seric	message so that it responds more quickly.
15465219Seric
15565119SericB **	Commas in NAME envariable cause problems (Peter Wan
15665119Seric	<peter@cc.gatech.edu>).  Merge with suggestions to use
15765119Seric	MIME-format for 8-bit characters?
15865119Seric
15965119SericE **	Save address information that comes back as the "additional
16065119Seric	records" part of an MX lookup, to avoid additional name server
16165119Seric	attempts.  If there is an MX record without an additional A
16265119Seric	record, delete it (this avoids a problem with misconfigured
16365119Seric	DNS situations).
16465119Seric
16565119SericX **	Allow a way to extend the $Z macro with local configuration
16665119Seric	information.
16765119Seric
16864755SericX **	Allow $x in -bt mode to expand macro "x".  (BCX)  [8.8]
16964755Seric
17064755SericX **	Allow /address in -bt mode to expand address through ruleset 0,
17164755Seric	aliases, etc. and display results.  [8.8]
17264755Seric
17364755SericX **	"R mailer address" in -bt mode does remotename on address.
17464755Seric
17564755SericE **	Adjust "infinite loop in rule" code to handle entire ruleset
17664755Seric	(Code from Michael Corrigan).
17764755Seric
17864718SericE **	Allow :include: from command line (not SMTP) to assist in
17964718Seric	"personal list" management -- i.e., creating lists that
18064718Seric	cannot be EXPNed.
18164718Seric
18264718SericX **	Database (keyed lookup) auto-rebuild.
18364718Seric
18464705SericX **	Find a good test suite and include in the distribution.
18564652Seric
18664718SericS **	You can use symbolic links to point into protected directories.
18764718Seric	(AEJ)
18864652Seric
18964705SericX **	Extend OI to allow separate settings for canonification, MX, and A
19064718Seric	lookups.  [8.8?]
19164652Seric
19264718SericX **	Add $!x class to match any number of words not in class x. (KRE)
19364683Seric
19464705SericX **	LOCAL_RULE_5 (Spencer Sun, spencer@phoenix.Princeton.EDU)
19564703Seric
19665353SericX **	Some way to diddle resolver flags on a per-lookup basis, such
19765353Seric	as a flag to the map declaration.  (Rick McCarty)
19865353Seric	- Is this really a good idea?  DNSRCH can be turned off by
19965353Seric	  putting a dot at the end.  AAONLY?
20065353Seric
20164718SericX **	Extend makemap to "gather" values -- i.e., merge entries that
20264718Seric	have the same keys. [8.8]  (BCX)
20364703Seric
20464718SericE **	Allow error messages on individual addresses in the qf file.
20564718Seric	(BCX)
20664718Seric
20764718SericX **	User database extensions for mailing lists:
20864718Seric	list:precedence -- Precedence: value for new message
20964718Seric	list:envelopefrom -- envelope "from" value for new message
21064718Seric	others?  [8.8]
21164718Seric
21265353SericX **	Command line switch to set precedence (for mailing list
21365353Seric	generation).  (BCX)
21465353Seric
21565119SericB **	Return-Path: header should have <> added if not already there.
21665119Seric
21765119SericX **	Add heuristic to determine if other end is a sendmail; use
21865119Seric	that to decide whether or not to honor F=I mailer flag.
21965119Seric	[der Mouse <mouse@collatz.mcrcim.mcgill.edu>]
22065119Seric
22165119SericX **	Automatically drop into MIME mode if you have a full name
22265119Seric	with 8-bit characters.  See envelope.c 8.19.1.1 and util.c
22365119Seric	8.17.1.1.  From Anders Ellefsrud <anders@ifi.uio.no>.
22465119Seric
22565119SericX **	-b? flag to read a header and show you what it will look like
22665119Seric	after all rewriting for an indicated address.
22765119Seric
22865188SericE **	Log $u in logsender() (for=<someaddress>).
22965188Seric
23065753SericB **	Include SOCKADDR in MCI struct for logging (currently gives
23165753Seric	a sockaddr of zero when printing from the cache).
23265753Seric
23366328SericX **	Allow option to set the characters that are autoquoted in
23466328Seric	addresses?
23566328Seric
23668838SericX **	Substring map class.
23768838Seric
23865907SericX *	Map that does MB/MR lookups.  Rick McCarty <mccarty@io.com>.
23965907Seric
24065119SericX *	Allow $> anywhere in RHS.  John Boeske <jboeske@ualberta.ca>.
24165119Seric
24264755SericX *	-V flag to print state of all (?) compilation flags.
24364755Seric
24464718SericX *	Handle Expires: header field (if still in queue).
24564718Seric
24664705SericX *	WIN/3B support (non-atomic rename, no h_addr_list, others?)
24764705Seric	(Bruce Lilly <blilly!bruce@uu.psi.com>)
24864703Seric
24964705SericX *	Sun YBTS daemon uses -ba.  [Martin Kiff <MGK@newton.npl.co.uk>]
25064705Seric
25164705SericB *	EXPN adds @domain to all mailers, including prog.  Is this right?
25264705Seric	[Bob Henry]
25364705Seric
25464705SericB *	EXPN adds @localhost instead of @$M.  [Pel Emanuelsson]
25564705Seric
25664705SericE *	Change body put code to time out around individual puts.  This will
25764705Seric	make the timeout algorithm more responsive and more resilient.
25864705Seric	Unfortunately, it's also a pain in the butt.
25964705Seric
26064705SericX *	Some way to relay unfound local users to another site.
26164705Seric
26264705SericX *	Disable all default RW sets except mailer-specific?
26368240Seric
26468240Seric
26568240Seric-------------------------------------------------------------------------------
26668240Seric
26768240SericIDA Features that have been requested:
26868240Seric
26968240Seric* USERMAILER
27068240Seric
27168240Seric* LOCAL_MX_HANDLER
27268527Seric
27368527Seric* NIS_MAILHOST
27468527Seric
27568527Seric* GENERICFROM
276