xref: /csrg-svn/usr.sbin/sendmail/src/TODO (revision 69400)
1*69400Seric(Version 8.38 of 05/13/95)
233732Sbostic
368838Seric==============================================================================
468838SericFor Release 8.7:
568838Seric  - getcanonname needs to be in service switch?
668838Seric  - another pass through Sun changes
768838Seric  - another pass through documentation
8*69400Seric  - change dotted users to plussed users
9*69400Seric  - rip out MIME (on compile flag)
1068838Seric==============================================================================
1168838Seric
1264705SericKey:
1364705Seric  X -- extension (user visible change)
1464705Seric  B -- bug fix
1564705Seric  S -- security fix
1664705Seric  E -- enhancement to existing algorithm
1757668Seric
1865958Seric
19*69400SericE ****	forward.5 man page.
20*69400Seric
2168089SericX ****	Multiple queues.
2268089Seric
2364705SericX ****	Merge Sun changes.  [8.7]
2459609Seric
2564755SericE ****	Fix parseaddr to return a dummy mailer with QBADADDR set for
2664755Seric	all cases except null input; change calls to be more sceptical
2764755Seric	about the return value, checking this bit instead of just
2864755Seric	checking for == NULL.  (Eric Wassenaar)  [8.7]
2964755Seric
3064799SericX ****	Run time configurable locking -- e.g., compile in HASFLOCK and
3164799Seric	HASLOCKF, and then choose at runtime between these.
3264799Seric
3365353SericB ****	Aliases with .REDIRECT fail during newaliases if the "n" flag
3465353Seric	is given.  Problem is, sometimes you want them to, sometimes
3565353Seric	you don't.  Perhaps two flavors of "error" mailer?
3665353Seric
3765353SericB ****	Calls to gethostbyname with a trailing dot fail if you are
3865353Seric	not running DNS.
3965353Seric
4065119SericX ****	Add uucp-bang mailer that strips off any domain name from
4165119Seric	the envelope recipient address first; this is for use in
4265119Seric	mailer table entries.
4365119Seric
4465188SericX ****	"quote" map (inverse of dequote).  Lets you turn node::user
4565188Seric	into "node::user"@DECNET.gateway
4665188Seric
4768527SericE ****	Change userdb code to use underlying maps, at least for
4868527Seric	:mailname; this lets people use NIS to supply generics
4968527Seric	information.  (Or should the generics code just be broken
5068527Seric	out into the config file?)
5168527Seric
5266013Seric? ****	Should $( [1.2.3.4] $) convert the address to a name?
5366013Seric
5468838SericX ***	Multiple queue runners.
5568838Seric
5668089SericE ***	Have recipient lines rewritten by the user database.
5768089Seric
5867420SericE ***	Arrange to run queue jobs as the owner of that queue file.  This
5967420Seric	probably requires forcing a fork in order to be able to completely
6067420Seric	restore the uid/gid portably without leaking out root privileges.
6167420Seric
6266337SericE ***	Long term host status -- store host status on disk for sharing
6366337Seric	between runs.
6466337Seric
6565869SericX ***	Extend I option to allow setting of retry and timeout values.
6665869Seric	drl@vuse.vanderbilt.edu (David R. Linn).
6765869Seric
6865753SericX ***	Total connection cache lifespan timeout -- a way to give a
6965753Seric	timeout on connections regardless of whether they are active
7065753Seric	or not.  For single threaded servers such as Microsoft SMTP
7165753Seric	gateway.  Douglas Anderson <dlander@afterlife.ncsc.mil>.
7265753Seric
7365119SericX ***	Create a macro that has message size.
7465119Seric	Peter Wemm <peter@DIALix.oz.au>
7565119Seric
7664718SericE ***	Dynamically allocate MAXNAME buffers for headers.
7764718Seric
7865119SericE ***	Dynamically allocate "line" buffer in readaliases().
7965119Seric
8064718SericX ***	Add -P to set precedence (e.g., -Pbulk). [8.8]  (BCX)
8164652Seric
8264718SericE ***	Don't send ErrMsgFile to postmaster bounces.  (Josh Smith,
8364718Seric	josh@osiris.ac.hmc.edu).
8464718Seric
8564799SericE ***	Have daemons that start up check the alias database for
8664799Seric	correctness and auto-rebuild if necessary.  This is to handle
8764799Seric	the case of a system crash during an alias database rebuild.
8864799Seric
8964799SericE ***	Eliminate E qf line and e_errorqueue; use e_errorsto a la
9064799Seric	e_receiptto.  This simplifies and gives symmetry.  (Eric
9164799Seric	Wassenaar)
9264799Seric
9365165SericX ***	DECNET_RELAY support in configs.
9465165Seric
9565753SericX ***	-wN command line flag to set the width of mailq output.
9665753Seric	(Allan Johannesen)
9765753Seric
9866328SericE ***	Move mailertable lookup after UUCP-specific class checks?
9966328Seric	(Kimmo Suominen <kim@tac.nyc.ny.us>)
10066328Seric
10166328SericE ***	Users in more than one list with different owners get duplicate
10266328Seric	deliveries -- maybe just assign them arbitrarily to one
10366328Seric	envelope or the other?
10466328Seric
10568401SericE ***	Mailer flag to turn off MX lookups.
10668401Seric
107*69400SericE **	Hooks for "mail status daemon" -- send dgrams to a WKS that will
108*69400Seric	announce when jobs are created/destroyed.  Someone needs to write
109*69400Seric	the daemon though....
110*69400Seric
111*69400SericX **	Mailer timeout (to handle things like local mailers that hang).
112*69400Seric	Perhaps a per-mailer value?
113*69400Seric
11468838SericE **	If you get a connection from a host for which you have queued
11568838Seric	mail, deliver everything to that host.  Intended for dialup SLIP
11668838Seric	style connections.
11768838Seric
11868527SericX **	Rewriting rules based on incoming mailer.
11968527Seric
12068227SericX **	Have a ruleset (6?) that gets both sender and recipient
12168227Seric	addresses to check compatibility.  Can you do enough interesting
12268227Seric	things with this?
12368227Seric
12466328SericX **	Make MAXBADCOMMANDS run time configurable.
12566328Seric
12666328SericE **	Allow mailertable entries of the form ``error:message''.
12766328Seric
12866328SericX **	Have .forward files re-queue if the home directory isn't
12966328Seric	accessible?  On some option...
13066328Seric	(Q.G.Campbell@newcastle.ac.uk)
13166328Seric
13266328SericX **	Have local delivery queue if NIS is down?  On some option...
13366328Seric	(Q.G.Campbell@newcastle.ac.uk)
13466328Seric
13566328SericE **	Have nullclient configuration resolve local names to the local
13666328Seric	mailer and then redirect them in ruleset 5; this allows you to
13766328Seric	redirect root differently depending on the client.  It's not
13866328Seric	clear this is really a good idea though.
13966328Seric
14066013SericE **	Move CurHostAddr into mci struct, and make CurMCI variable
14166013Seric	point to this, so that logging will give the correct address
14266013Seric	instead of (0) for cached connections.  Motonori Nakamura.
14366013Seric
14465907SericX **	Allow use of a generalized network service for aliasing?
14565907Seric	How would the protocol be defined?
14665907Seric	James Gritton <gritton@byu.edu>.
14765907Seric
14865555SericE **	Make "local configuration error" a temporary failure?
14965555Seric	(add EX_CONFIG to the markfailure list)
15065555Seric
15165353SericX **	(sigh) BSMTP.
15265353Seric
15365226SericX **	"E" configuration line that sets environment variables.
15465226Seric
15565219SericE **	Change listen() high-load backoff to accept and issue a 4xx
15665219Seric	message so that it responds more quickly.
15765219Seric
15865119SericB **	Commas in NAME envariable cause problems (Peter Wan
15965119Seric	<peter@cc.gatech.edu>).  Merge with suggestions to use
16065119Seric	MIME-format for 8-bit characters?
16165119Seric
16265119SericE **	Save address information that comes back as the "additional
16365119Seric	records" part of an MX lookup, to avoid additional name server
16465119Seric	attempts.  If there is an MX record without an additional A
16565119Seric	record, delete it (this avoids a problem with misconfigured
16665119Seric	DNS situations).
16765119Seric
16865119SericX **	Allow a way to extend the $Z macro with local configuration
16965119Seric	information.
17065119Seric
17164755SericX **	Allow $x in -bt mode to expand macro "x".  (BCX)  [8.8]
17264755Seric
17364755SericX **	Allow /address in -bt mode to expand address through ruleset 0,
17464755Seric	aliases, etc. and display results.  [8.8]
17564755Seric
17664755SericX **	"R mailer address" in -bt mode does remotename on address.
17764755Seric
17864755SericE **	Adjust "infinite loop in rule" code to handle entire ruleset
17964755Seric	(Code from Michael Corrigan).
18064755Seric
18164718SericE **	Allow :include: from command line (not SMTP) to assist in
18264718Seric	"personal list" management -- i.e., creating lists that
18364718Seric	cannot be EXPNed.
18464718Seric
18564718SericX **	Database (keyed lookup) auto-rebuild.
18664718Seric
18764705SericX **	Find a good test suite and include in the distribution.
18864652Seric
18964718SericS **	You can use symbolic links to point into protected directories.
19064718Seric	(AEJ)
19164652Seric
19264705SericX **	Extend OI to allow separate settings for canonification, MX, and A
19364718Seric	lookups.  [8.8?]
19464652Seric
19564718SericX **	Add $!x class to match any number of words not in class x. (KRE)
19664683Seric
19764705SericX **	LOCAL_RULE_5 (Spencer Sun, spencer@phoenix.Princeton.EDU)
19864703Seric
19965353SericX **	Some way to diddle resolver flags on a per-lookup basis, such
20065353Seric	as a flag to the map declaration.  (Rick McCarty)
20165353Seric	- Is this really a good idea?  DNSRCH can be turned off by
20265353Seric	  putting a dot at the end.  AAONLY?
20365353Seric
20464718SericX **	Extend makemap to "gather" values -- i.e., merge entries that
20564718Seric	have the same keys. [8.8]  (BCX)
20664703Seric
20764718SericE **	Allow error messages on individual addresses in the qf file.
20864718Seric	(BCX)
20964718Seric
21064718SericX **	User database extensions for mailing lists:
21164718Seric	list:precedence -- Precedence: value for new message
21264718Seric	list:envelopefrom -- envelope "from" value for new message
21364718Seric	others?  [8.8]
21464718Seric
21565353SericX **	Command line switch to set precedence (for mailing list
21665353Seric	generation).  (BCX)
21765353Seric
21865119SericB **	Return-Path: header should have <> added if not already there.
21965119Seric
22065119SericX **	Add heuristic to determine if other end is a sendmail; use
22165119Seric	that to decide whether or not to honor F=I mailer flag.
22265119Seric	[der Mouse <mouse@collatz.mcrcim.mcgill.edu>]
22365119Seric
22465119SericX **	Automatically drop into MIME mode if you have a full name
22565119Seric	with 8-bit characters.  See envelope.c 8.19.1.1 and util.c
22665119Seric	8.17.1.1.  From Anders Ellefsrud <anders@ifi.uio.no>.
22765119Seric
22865119SericX **	-b? flag to read a header and show you what it will look like
22965119Seric	after all rewriting for an indicated address.
23065119Seric
23165188SericE **	Log $u in logsender() (for=<someaddress>).
23265188Seric
23365753SericB **	Include SOCKADDR in MCI struct for logging (currently gives
23465753Seric	a sockaddr of zero when printing from the cache).
23565753Seric
23666328SericX **	Allow option to set the characters that are autoquoted in
23766328Seric	addresses?
23866328Seric
23968838SericX **	Substring map class.
24068838Seric
24165907SericX *	Map that does MB/MR lookups.  Rick McCarty <mccarty@io.com>.
24265907Seric
24365119SericX *	Allow $> anywhere in RHS.  John Boeske <jboeske@ualberta.ca>.
24465119Seric
24564755SericX *	-V flag to print state of all (?) compilation flags.
24664755Seric
24764718SericX *	Handle Expires: header field (if still in queue).
24864718Seric
24964705SericX *	WIN/3B support (non-atomic rename, no h_addr_list, others?)
25064705Seric	(Bruce Lilly <blilly!bruce@uu.psi.com>)
25164703Seric
25264705SericX *	Sun YBTS daemon uses -ba.  [Martin Kiff <MGK@newton.npl.co.uk>]
25364705Seric
25464705SericB *	EXPN adds @domain to all mailers, including prog.  Is this right?
25564705Seric	[Bob Henry]
25664705Seric
25764705SericB *	EXPN adds @localhost instead of @$M.  [Pel Emanuelsson]
25864705Seric
25964705SericE *	Change body put code to time out around individual puts.  This will
26064705Seric	make the timeout algorithm more responsive and more resilient.
26164705Seric	Unfortunately, it's also a pain in the butt.
26264705Seric
26364705SericX *	Some way to relay unfound local users to another site.
26464705Seric
26564705SericX *	Disable all default RW sets except mailer-specific?
26668240Seric
26768240Seric
26868240Seric-------------------------------------------------------------------------------
26968240Seric
27068240SericIDA Features that have been requested:
27168240Seric
27268240Seric* USERMAILER
27368240Seric
27468240Seric* LOCAL_MX_HANDLER
27568527Seric
27668527Seric* NIS_MAILHOST
27768527Seric
27868527Seric* GENERICFROM
279