+SHORT TERM TASKS
+
+ * Elevate "vacation" to a real release program -- check man pages,
+ install in /usr/ucb, etc. May need some work -- it's still a bit
+ tricky to use.
+
+ * Throw in "smart UUCP" mailer that knows about neighbors that can
+ handle more than one recipient at once. This is easy and should
+ be very useful for certain sites. Configuration files should
+ default to "dumb" however.
+
+ * Clean up configuration on releases -- send out fewer Berkeley and
+ more basic configs (e.g., BLI).
+
+ * Verify that new name server doesn't confuse sendmail.
+
+ * Only add Message-Id: if message is locally generated (???).
+
+ * Improve documentation describing how to create a config file --
+ probably means putting more configs on distrib.
+
+ * Listen in UNIX domain (as well as INET)?
+
+ * A way to mark addresses in the queue as you process them as "done" --
+ probably by appending lines to the cf* file. The point here is to
+ avoid duplicate messages to large lists if a crash occurs during
+ processing. This is hard.
+
+
+
+LONG TERM TASKS
+
+ * Break up sendmail into several smaller programs:
+
+ queueup -- insert message into mail queue; call runqueue when
+ done -- called by user, smtpserver, cleanqueue (to return
+ expired messages), etc.
+ runqueue -- process queue entries -- take optional job name list
+ to run only those jobs -- called by queueup and by cron
+ to push the queue.
+ printqueue -- print mail queue.
+ cleanqueue -- return expired messages; basic consistency
+ checking.
+ smtpserver -- process smtp connections, pass to queueup -- this
+ can probably become a simple service a la /etc/inetd.
+ addrtest -- essentially "-bt" mode.
+ verifyaddr -- verify an address list -- "-bv" mode -- needs a
+ "noisy" and a "silent" mode (exit status only). This
+ should be the same code as smtpserver and queueup use
+ to verify addresses.
+ [This may want "shallow" and "deep" modes, where
+ deep mode tries to connect to the remote site if
+ on SMTP and issue a "VRFY" command.]
+ newaliases -- build alias file -- should not be part of sendmail
+ proper. (See editalias below -- that would probably
+ preempt -- although a text form will be critical for
+ interchange.)
+
+ It may be better to make runqueue a daemon on 4.2 and have queueup
+ poke it (using a datagram). This guarantees single threading (is this
+ an advantage? -- long jobs can block the queue) and minimizes
+ gratuituous forks/execs. However, I feel strongly that portability
+ is important -- the fork/exec method should still be included.
+
+ * New programs:
+
+ editalias -- front end to modify alias database, including
+ "ownership" (so that people can modify lists that they
+ own, but not other lists) -- see Grapevine papers --
+ distributed????
+ rmqueue -- remove a job from the queue. Usual ownership rules
+ should apply of course.
+
+ * Change config file to be more understandable -- yacc grammar probably.
+ Perhaps defaults should be compiled in whenever possible.
+
+ * Only use rewriting rules to go to and from canonical format. Other
+ resolution should be defined by the name server (See MMDF).
+
+ * Perhaps there should be a "compiled format" for the configuration
+ file, something between a yacc-style config and the freeze file; very
+ quick to read w/ low overhead. [Suggest a struct with "char *" being
+ index into a buffer area; these can be mapped internal <==> external
+ easily.]
+
+ * Move functionality:
+
+ [] Currently sendmail will rewrite "To: miriam mckusick" to
+ "To: miriam, mckusick" unless some "special" characters
+ are used (e.g., ()<>,; -- characters specific to RFC822).
+ This should be moved to the user agent (Mail, rmail, MH,
+ etc.). Big job because all user agents must be modified.
+ [] Would be nice if UUCP shit-format was handled by UUCP
+ itself. This has serious performance implications unless
+ actually built into UUCP.
+
+ * Non-sendmail related changes:
+
+ [] UUCP routing code (part of the name server really) -- can
+ the work that Peter Honeyman or others have done be useful?
+ [A significant point is making this work given incomplete
+ information -- yum yum. Some database work in this area.]
+ [] Reply code in ucbMail has little relation to current mail
+ software. "Smarts" should be stripped out.