webmlist 1.3.0
Developed by: Rob Siemborski (rjs3+@andrew.cmu.edu)

Description:
-=-=-=-=-=-=-
webmlist is proof-of-concept software that demonstrates the use of a web
front-end to a mailing list archive that stored within a IMAP folder.

webmlist is a read-only IMAP client, and capable of both a Threaded view
of the store and a flat view (as well as an RSS feed).

Recent Changes:
-=-=-=-=-=-=-=-=-
* makerss.php now provides an RSS interface to IMAP folders.  It takes similar
  parameters to search.php (mailbox, startThread, etc).
* The startThread parameter to mailbox.php and search.php can now be negative,
  indicating we should start our display at the nth message/thread from the end.
* We now include limited support for GSSAPI authenticated connections to the
  IMAP server.
* In authenticated mode, unseen messages are bolded.
* We now use UIDs exclusively instead of sequence numbers, this allows messages
to be deleted out of the backend mailbox and we can continue to function.

Requirements:
-=-=-=-=-=-=-=-=-=-
This software requires PHP 4.0.7 (unreleased as of this writing) or better,
built with the IMAP extention (using imap-2000, in order to have the
REFERENCES threading support).

As an alternative to PHP 4.0.7 you can try applying the included php4 diff to
an earlier version of PHP4, but this is at your own risk.

For GSSAPI authenticated connections to the IMAP server, you must apply
the included patch (php_imap_gss.diff) to PHP, and rebuilding (the patch
is against 4.2.3).  In order to fully support this, you must provide the
running web appliation with a Kerberos 5 ticket file in the KRB5CCNAME
enviornment variable, and the username in in REMOTE_USER.  You must also
enable the php.ini option imap_use_gss.

Installation Instructions:
-=-=-=-=-=-=-=-=-=-=-=-=-=-
After PHP is successfully installed using the patch, simply place the
PHP files in a directory on your web server.

Edit shared.php to point at your IMAP server (the $server variable, in the
typical imap {SERVER:PORT} format).  Note that there are two places this
must be changed, once for with-GSS, and once for without-GSS. Also change
the $bboards variable to be an array of the bboards (public folders) that
you wish to show.  The first bboard in the list is the default.

Note that this does not restrict access to folders that are not in the
$bboards array (but still accessible anonymously).  These folders
can still be accessed by manually changing the mailbox variable that
is posted to the form.

You also need to modify threadcache.php to ensure that it points at a
directory writable by the web server for storing the cache files.

Bugs/Future Improvements:
-=-=-=-=-=-=-=-=-=-=-=-=-=-
There is much need for improvement in the message parser/display routines.

It would be nice if the user interface was a bit cleaner, instead
of being the chunky all-text system that it currently is.

Cacheing needs to deal with UIDVALIDITY changes correctly.

Might be nice to have some additional parameters that can be included in links,
e.g. No Decoration, or show most recent N threads.

Please use our bugzilla at http://bugzilla.andrew.cmu.edu to track bugs
for this project.

Anonymous CVS
-=-=-=-=-=-=-
This project is available as the "webmlist" module from cvs.andrew.cmu.edu,
for details about accessing it, see:

http://asg.web.cmu.edu/cyrus/download/anoncvs.html

License Information:
-=-=-=-=-=-=-=-=-=-=-
Copyright (c) 2001-2003 Carnegie Mellon University.  All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer. 

2. Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in
   the documentation and/or other materials provided with the
   distribution.

3. The name "Carnegie Mellon University" must not be used to
   endorse or promote products derived from this software without
   prior written permission. For permission or any other legal
   details, please contact  
     Office of Technology Transfer
     Carnegie Mellon University
     5000 Forbes Avenue
     Pittsburgh, PA  15213-3890
     (412) 268-4387, fax: (412) 268-7395
     tech-transfer@andrew.cmu.edu

4. Redistributions of any form whatsoever must retain the following
   acknowledgment:
   "This product includes software developed by Computing Services
     at Carnegie Mellon University (http://www.cmu.edu/computing/)."

CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
