				***********
				TkMail v2.0
				***********

INTRODUCTION:

   TkMail is an X windows interface to mail built using Tcl/Tk and Perl.
   Reading, sending, and managing mail messages can almost all be done
   using only the mouse (except for the body of the message, of course).
   TkMail writes its folders in the format of the standard unix 'Mail'
   command.  It also uses 'sendmail' commands to do the mail delivery
   work.

   Major Features:
	- listbox interface to messages for easy click and read
	- multiple viewers can be opened on different or the same folder
	- dynamic (at startup) menus for quick access to mail folders
	  for reading, copying, and moving messages
	- button bar for quick composing, replying to, and forwarding of
	  mail messages
	- built in 'biff' icon for notification of new mail
	- easy inclusion of files into message compositions with
	  automatic uuencoding and compression, if desired
	- access alternate editor for compositions to send
	- spell check compositions using a X windows interface
	  (must have the ispell program version 3.0.09, not 4.0!)
	- reads aliases from either standard .mailrc or elm aliases.txt
	- easy piping of message text through unix filters
	- emacs-like key-bindings for text editing
	- emacs-like autosave
	- sorting of messages on any field and the ability to
	  write out the folder physically in that order
	- simple MIME reading and compostion tools
	- viewed messages are editable inside viewing widget so
	  one can add or delete text for printing or piping X selections

   NOTE: direct reading of the mail spool folder is not supported in
	 this release. Mail is first incoporated to the ~/mbox file.

COMPATIBILITY:

   This version of TkMail is for Tk3.6 only and will not work with
   Tk4.0. It will work with Perl4.036, though Perl5 is recommended.

   TkMail is built using only scripts for maximum portability. Still,
   there may be aspects which are still not standard across all
   platforms or even versions of operatings systems. Also, there is no
   guarantee that it is bug free, so don't trust TkMail without at
   least running it through a few tests yourself!  Make a backup copy
   of your ~/mbox file and some of your folders and then test out
   TkMail's operations on those files.

   HPUX:  from the beta testing cycle, this OS seems to be the one with
     the most compatibility problems. The main source of problems is that
     signals in Perl don't seem to be handled correctly which causes
     tkmail to hang on startup even if the WNOHANG was set correctly. The
     hack solution is to comment out the two $SIG{'CHLD'} lines in
     tkmail. What is lost without it is the ability for the Perl process
     to know that the Wish process has died (such as someone closing their
     X session before quiting TkMail) and the Perl process will be left
     running in the background. Some report that upgrading to Perl5 fixes
     the problem.

   SGI/IRIX: I have also had reports of hanging problems that where fixed
     by commenting out the $SIG{'CHLD'} lines as with HPUX above.

   LINUX: TkMail works fine on my Slackware 2.3 system, but some users
     of the Red Hat distribution report the same probelm as HPUX users
     above. It has the same solution

   One cost of using only interpreted scripts is speed. For moderately
   sized folder, TkMail's response should be sufficient. However, if
   you maintain many folders of 200+ messages, then you will have to
   be VERY patient. I would suggest taking advantage of a subdirectory
   structure in your Mail directory and splitting your folders up a bit.

   TkMail depends on mail delivery program like 'sendmail' such that
   the following

       cat file | sendmail -bm -t

   mails file to users in To:, Cc:, and Bcc: fields. This bypasses the
   Mail command and therefore options such as 'record'.  I have
   created the mf(compose-fcc-folder) user setting to account for
   this. It might be necessary to hack the mfv:record-mesg procedure
   in compose.tk to make it fit your mail folder format. You can
   change the name of the mail delivery program in the Makefile with
   the DELIVERY variable.

   For spell checking, TkMail uses ispell by Geoff Kuenning, NOT Gnu
   Ispell 4.0. You can get it by anonftp at ftp.cs.ucla.edu:pub/ispell.
   This is required only if you want to run the spell checker and can be
   turned off using the HAVEISPELL variable in the Makefile. If when
   using the spell checker, you notice that mispelled words are
   highlighted one character off, you will need to toggle the state of
   the tkisp(adj_offset) setting at the top of the ispell.tk file.

   TkMail calls the following standard UNIX programs that must be in
   your path: ls, cat, touch, whoami, sort, rm, uudecode, mkdir and
   date.
    
   >>>>>>>> If you get a core dump read this paragraph <<<<<<<<<<<<

   You will find in the contrib directory two files: tk.patch and
   tk.patch2.  If you have not applied tk3.6p1.patch.Z available at
   ftp.aud.alcatel.com:/tcl/ftp.smli.com or the tk.patch file in
   contrib to your wish, TkMail will coredump.  The file tk.patch2
   fixes a minor problem that some users had with "illegal unit"
   messages and should not be stricty necessary if you have already
   patched the raw tk3.6 distribution.

STABILITY:

  I believe TkMail is very stable in the most important thing: not losing
  mail.  If TkMail hangs or is killed, you should always be able to find
  your mail in your system spool, main folder, or in the temporary directory.
  The most risky operation is always moving mail from your system spool
  to personal folders.  I took the easy way out here by requiring one to
  first incorporate there mail from the spool file to a main folder and
  passing the work of the incorporation to emacs' movemail or procmail's
  lockfile.  It is possible to have TkMail try to do itself (see the
  INSTALLATION below) but this is not recommended and you do so at your
  own risk.

  The Perl/Wish process communication has proven to be more unweildly,
  slow and fragile than I hoped. For my Tk4.0 port of TkMail I will rework
  this interface in some way. The Perl process seems to be a huge memory
  hog and I hope to also cure this by reworking the interface.

  The MIME tools in TkMail are still very experimental. MIME parsing can 
  be easily turned on an off from the main viewer menu. I try to do all
  the MIME parsing in the Perl scripts myself. I now think it would be
  better to use special features of the metamail program. Some might find
  it more stable to just use the mfv:xterm-command features of tkmail to
  pipe a message directly to metamail. The included example.tkmailrc file
  shows how to do this.

INSTALLATION:

   I have run TkMail successfully on SUN, Linux  and IBM RS/6000 systems.
   However, each system has a special site-tailored mail system so everyone
   should test tkmail extensively for themselves before using regularly.

   (1)  Edit the Makefile to set the defines to match your site
	NOTE: some setting may require you to edit the tkmail file
              to add some platform selection code after normal installation
	      so that tkmail can run on multiple systems

   (2)  Type 'make' to build the tkmail script executable and other files. 

   (3)  Type 'make iotest'. This will run a small Perl script to check that
	your Perl handles I/O and signals in a way tkmail can operate with.
	If you don't see the final line 'The iotest Passed', then your
	Perl binary won't work with tkmail. This is a know problem for
	the Perl that comes with Slackware 2.0.2/Linux. I have placed a
	working Perl binary at the SLAC ftp site for Linux users.

   (4)  If you choose not to use movemail or locktest in (1), you will need
	to test whether tkmail's internal locking will work for you.  Make
	sure you have no new mail and backup your ~/mbox (just in case,
	though it shouldn't be a problem).  You may need to edit the
	$locktime variable at the top of the lock.test file. This test is
	to make sure tkmail's way of locking works on your system. I have
	run successfully on a SUN and IBM at my site since the mail spool
	directory is user writable. On some Linux systems which uses
	smail, messages delivered while the spool file is locked seem to
	get stuck in the queue forever. If you understand this and how to
	fix it, please write me.

	Type 'make locktest' to see if the default file locking will work
	for you. If it fails, you need to use Emacs' movemail or procmail's
	lockfile.  IMPORTANT: if you have your mail forwarded using
	.forward, this test will not work.  Temporarily move your .forward
	file for the test.

	If you have neither of these programs but have another you think
	will do the trick, email me how it works and I will work in
	support for it. If you have no other program, I suggest getting
	the procmail package as it is much smaller than Emacs and will
	provide you with an excellent mail pre-processor. It can be found
	at
		ftp.informatik.rwth-aachen.de:/pub/packages/procmail.

	NOTE: On systems where 'make locktest' fails, it is likely that it
	is because you don't have permission to write in the spool
	directory.  If the movemail or lockfile programs aren't set uid
	root or mail, they most likely won't work either. Test them.

   (5)  Type 'make install'.

   (6)  Look at the SETTINGS section in the help.txt file for descriptions
	of setting you might want to put into your ~/.tkmailrc file
	(~/.tk/tkmailrc is also supported). An example ~/.tkmailrc is
	included in example.tkmailrc.

   (7)  If you are updating from a 1.x version of TkMail, you will most
	likely need to modify your ~/.tkmailrc file to use the new
	variable name scheme. I have included a sed script called
	newvar.sed to quickly do this. Type
		sed -f newvar.sed ~/.tkmailrc > tkmail.new
        then copy tkmail.new into ~/.tkmailrc.

   Now you are ready to run!

A WORD OF CAUTION:

   The way alot of people use TkMail (including me) is have TkMail
   always running, most of the time as an icon to signal new mail.
   When I log off, I don't bother to quit TkMail (or any of the other
   X applications running) explicitly.  Therefore, pending deletes and
   marking of messages as read may not be done. On some badly designed
   systems, it might be possible to lose new incorporated mail. You
   should test this by sending yourself a test mail message, running
   TkMail from a shell (not in the background), incorporating the
   mail, and then killing TkMail abruptly (type ^C in the shell).
   Rerun TkMail and see if the test message is still there.  Please
   email me if you find this behavior on your system.

   One way around the problem is to use a problem like xmexit to
   quit your X session. This program first tries to do tell the X
   application to quit themselves, and if they don't respond, kills
   them. TkMail will answer this. I have modified xmexit to use
   Athena Widgets and placed the distribution at the SLAC ftp site.

   ftp.slac.stanford.edu:pub/software/TkMail/xtexit.tgz

MAILING LIST:

A Majordomo mailing list exists for general discussion of the TkMail
program. It is unmoderated and unrestricted, but at this point gets
very little traffic.  Feel free to use it to post examples of your
extensions to TkMail that you think are of general interest. Most
bug reports should just be sent to raines@slac.stanford.edu unless 
you they concern UNIX platform problems. To join, send a message to

           listserv@mailbox.slac.stanford.edu

in which the first line of the BODY is

        subscribe tkmail-l <your_address>

Obviously, <your_address> should be replaced with your address.

Another list, tkmail-dev, is used for beta testers of the current
development version of tkmail. Feel free to join this list if you
are intested in contributing to the development of the next release.

FTP SITE:

   The latest version of TkMail is always available by anonymous ftp at
        ftp.slac.stanford.edu:software/TkMail/tkmail.tar.gz


Paul Raines
September 4, 1995

