This is a file of things to do. If you have other ideas or needs send
them to hypermail@landfield.com or enter them in the Hypermail Development
Center's Suggestions located at http://www.landfield.com/cgi-bin/hmsuggest.

==================
Important Things:
==================

- Add locking to the archive so there is no race conditions and only a 
  single message is processed at a time. Subsequent arriving messages 
  would queue waiting completion...  

- Add Kent's faqs.org validation routines to assure that only valid 
  links are generated. valid_domain is used but othere are still needed.
  This will also look for other links besides just listed URLs.
  
- MIME support and all it implies (reeeeaaal close but still a little to go)

======================
Things to Add/Correct:
======================

- Add date/subject/author filters for articles that are read in

- Include a runtime option that creates a "mailto:" link to the mailing 
  list address for each message-page (I keep getting messages from several 
  different archive users requesting info on how to post to the list);

- Add the ability to have hypermail store an incoming message in to 
  a Unix mailbox archive as well as generating the new HTML page.

- Need to profile this to see where time is spent and speed it up.

- Rewrite the loadoldheaders while loop to be more robust an forgiving.

- Need to create a library of hypermail functions so that other utilities
  can be generated without making things real ugly. (i.e. removal, other
  indexing.)

============
Attachments:
============

o BUG: At present if you have an archive that you are periodically 
       updating via a mailbox and are not overwiting the archive, 
       the bin* files are not reused but are recreated anew. This 
       leaves the previous bin* files in the archive directory and 
       orphaned. The "attachment=xxx" comment should be read and
       the referenced file removed.

o If a filename is not known and the MIME type is known, the proper 
  extension should be added to the randomly generated file name.

o For security reasons, *all* binary attachments should be 
  written to disk with file permissions of 444 or equivalent 
  read-only access and should *never* allowed to be executable.

o The user should be able to 1 indicate if attachments are stored to
  be stored as separate files from the original message. 
  (Turn it on or off.)

o Specifying a list with 'preferred' content-types when 
  receiving/decoding mixed/alternative attachments. Support is there 
  in the config file but not in the code. Currently the "text" is always 
  preferred.

o It is doubtful that hypermail deals with all kinds of uuencoded 
  attachments as defined with 'x-uue' in the current hypermail. Other 
  MIME resources mention a whole set of different names for this kind 
  of encoding, but are they in use?

o Hypermail should be able to deal with Sun's (silly) mailtool 
  attachments in a manner similar to how it deals with mime attachments. 
  It would be really cool if the output would be identical and the 
  differences hidden from the user(s).

==============
General Needs:
==============

- Year 2000 compliance

- The ability to split up indices into pages
  o Limit by # of messages and by hour/day/week/month
  o Make subfolders?

- No fixed string limits

- No fixed message limits

- Should recognize and parse indented HTML tags

- Don't ignore umask - HM_UMASK variable? 

- Ability to save files with suffix ".htm" or ".html"

- A better icon for hypermail!

- Ability to check for duplicate message IDs

- Ability to refer to articles via message ID as well

- The ability to delete a message

- Expire old articles, honor "X-Expires" or "Expires"

- The ability to cap the archive to X most recent messages

- Warning to users: Only unix mbox style archive format!
  Allow for multiple formats to be recognized, like news articles

- Dates:
  o Check for dates not containing ":"
  o Check for date values that are not padded with a "0" on the left

  Here are some date formats used in mail:
      Mon Feb 13 00:31:54 PST 1995
      13 Feb 95 00:31:54 PST
      Fri, 11 Aug 95 13:45:21 BST
      Fri Aug 11 13:45:21 1995
      Wed, 1 Sep 1994
      24 Aug 94 09:48:00
      From jj@scorpio.tn.cornell.edu Wed Jul 24 13:21 EDT 1996
      Wed, 7 Dec 94 7:42:00 CST
      From joe@MIT.EDU Mon Aug 29 15:00:20 CST 1994
      From af-bounce@atmforum.com Thu Sep 22 06:40 EST 1994
      From triley@VMD.CSO.UIUC.EDU Tue Nov  1 09:11:45 +0000 1994
      Tue, 1 Nov 1994 09:11:45 +0000
      From lange@chi.acc.bessy.de Fri Dec  9 17:09 MEZ 1994

- Date sorting needs to be more robust
  o Allow for very old years
  o Allow for years > current year
  o Timezone conversion

- In parsing header fields, check for extra spaces, tabs, etc.

- Check for zero-length headers

- Search for "HTTP" and "http" when making links

- Parse archives with only one or zero messages

- Quoting:
     "   Jane>"
     " >"
     "]"
     ")"
     ":"
     " :  "

- Make sure "sort by..." groups all messages in same thread

- Add sort by "in reply to" as well

=============================
Administrative Things to do:
=============================

o Get a good set of test files.  For now you can use your own...

o Get to develop a complete regression test suite 

