This is an alpha release of the Mail::Folder module package for perl5.

This module provides an interface to email folders that is independent
from the physical folders.  The actual work on folders is done with
folder interface modules lying 'beneath' the Mail::Folder interface.

WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING!
Think twice about using this module to modify folders that you
consider important.  At the very least make sure you have backup
copies.

WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING!
The method interface is currently in an evaluation phase.  Since the
module is at an early stage of it's life, I'm not going to try too
hard to provide for backward compatability to older alpha versions.
I'm going to try to make all changes to the method interfaces before
it reaches beta release.

To build and install the package execute the following commands:
	perl Makefile.PL
	make
	make test
	make install

The TODO file has information on features that aren't present or
complete yet.  The items marked with '*' in the TODO file are items I
want to have done before I put it in beta release mode.  By beta, I
mean approaching (repeat: approaching ;-) the point where you might
not lose too much sleep if you wanted to use it on real folders on a
regular basis for important things.  Other items might also be
completed, but I wanted to provide some indication of what work I
think needs to be done in order to proceed to the next level.

The NEWS file has summary information on the changes from release to
release.

The BUGS file as information on current implementation bugs/malfeatures.

The CREDITS file list folks who have been very particularly
helpful/brave.

The current version has been developed and tested against 5.003_24 or
newer.

The following modules are required:
    MailTools-1.09	      - for handling mail messages
    TimeDate-1.07	      - for date field slurping in the mbox interface
    File-BasicFLock-96.072401 - for folder locking in the mbox interface
    File-Sync-0.04	      - for implementing qmail's style of writing to
				maildir files
    libnet-1.05		      - for the NNTP interface

I've included the following folder interfaces:
    + Mail::Folder::Mbox - ye olde standard mailbox format (ugh).
    + Mail::Folder::Maildir - a maildir (ala qmail) interface.
	This is a very interesting folder format.  It's missing some
	the nicer features that MH folders have (like .mh_sequences),
	but is probably one of the more resilient folder formats around.
	The implementation I've provided is very rudimentary, please
	contact me if I've made a mistake in the implementation.
    + Mail::Folder::Emaul - an amoebic folder interface of my own design.
	It is vaguely MHish. Eventually, it might grow into a
	full-featured folder architecture or it might go away if an MH
	interface is ever written., In either case, for now it's an
	adequate example.  It will never be a 100% MH interface, but
	it can actually read MH folders, albeit without some of the
	fancier MHisms like sequences and the like.  It's here because
	it was what I used to flesh out early versions of
	MailFolder. If an MH folder interface is ever written, I'll
	probably do away with the emaul interface.
    + Mail::Folder::NNTP - the beginnings of an NNTP folder interface.
	There are several notable Mail::Folder methods that are not
	implemented yet, and it hasn't been tested very well.  There's
	no regression test for it yet - I'm going to have to implement
	a test like Graham Barr uses to test Net::NNTP in his libnet
	package.  Expect various improvements (like xhdr) in the
	future.  I haven't decided how or if to map update_message and
	append_message into NNTPspeak yet.

These interfaces should serve as reasonable examples of hacking a
folder interface into Mail::Folder.

I don't plan on writing a lot of interfaces, myself, but here is a
list of some of the ones I'm interested in enough to write (in order
of likelihood):
    + nntp - I'm going to try to write before MailFolder is out of beta
    + imap - I don't think this will make it by MailFolder-1.0.
	     The IMAP transaction model is going to be the seeds of
	     version 2.0.

Here are some folder interfaces that would be nice to have, but since
I don't use them, someone will probably have to contribute them:
    + MH (I might actually write this, but I would gladly take volunteers :-)
    + ams
    + vm
    + babyl
    + mmdf
    + any other interesting ones?

It would appear that several of these are 'almost' exactly like other
folder interfaces.  The current folder interfaces aren't written to be
subclassable yet.  I'm not sure if things will improve on this front
until after 1.0.

Check the documentation for Mail::Folder and the provided folder
interfaces for information on using the package and adding folder
interfaces.  Please let me know if you run across something needs to
be documented better.

The examples directory contains some sample scripts that illustrate
various uses of the module.  None of these are installed by the
Makefile.
    + getpop.pl	- a simple pop slurper (uses Net::POP3).
    + from.pl	- a simple variant of from(1).
    + xmailfolder.pl - an MUA using the Tk:: modules!
There is further information on these scripts in the README file in
the examples directory.

I'm making progress on the details of interfacing to MailTools and
MIME-parser.  Expect progress soon.

It is 'highly unlikely' that Mail::Folder will ever be capable of
abstracting every folder feature of every MUA out there in a truly
transparent way.  I don't, however, think that this detracts from some
of it's more interesting potential uses:
    + 100% pure perl MUAs
    + perl scripting against mail folders
      (folder conversions are a snap :-)
    + accessing folders from otherwise non-email packages

You might yourself why I don't just resort to a perl interface to
c-client since I'm moving towards an IMAP model.  I could do that it
and it would probably be cool, but I'm interesting in being able to
provide a more unbounded list of folder interfaces than c-client
currently provides.  For example, there will probably not be a maildir
interface in c-client until there is a perception of a sufficient need
for it.  I'd much rather provide a tool that caters to the toolsmith
in us all and provide a tool that makes it easier to roll your own.

Please contact me if you use this for anything non-trivial.  This is
not for permission, it's so I can get some idea of what folks are
using the package for other than trivial scripts.

Please report any bugs/suggestions to <kjj@pobox.com>.

Copyright (c) 1996-1997 Kevin Johnson <kjj@pobox.com>.

All rights reserved. This program is free software; you can
redistribute it and/or modify it under the same terms as Perl itself.
