PowerMail Page
PowerMail is a graphical, MIME-compliant mailer which was written by
Ian Smith (with help from Blair McIntyre and Ted
Rathkopf ) between fall 1993 and spring 1994. The current version
of PowerMail is beta-2 and is fairly stable (about a half a dozen
people trust it with their mail on a daily basis). It is currently
only available for Sun workstations running solaris 2 or sunos 4.1.3.
I will give out source to interested parties for porting/research
purposes but, for the reasons below, I'd like to keep the source out
of widespread distribution.
PowerMail is built on the work of Marc Crispin
(mrc@cac.washington.edu, anybody got his URL?) who wrote the wonderful
C-Client mail toolkit which allows PowerMail to understand a variety
of mail formats (although only Berkeley mail and MH are supported
right now) and to perform MIME parsing. PowerMail is also built on
the TK X Windows toolkit and TCL interpreter by John
Osterhout. PowerMail currently consists of about 32,000 lines of TCL
code and about 5,000 lines of C code (which was necessary to provide
some new interaction techniques not normally available in TK).
Major Wins of PowerMail
PowerMail was originally written by me because I was attempting to
use the Sun Mailtool program and it just wasn't doing what I
wanted. It didn't support MIME well enough, didn't interoperate with
MH, didn't do anything to allow me to get through my mail faster. I
wrote PowerMail to be simple enough for anyone to use, yet hackable
enough for the power user (powermailer?). Its written almost entirely
in TCL, and has numerous hooks for including your own TCL code.
Further, it supports automatic classification incoming mail to
allow you to more easily support scanning. You can write IMAP queries
(see RFC 1176) which are things like "from foobar@grok.com" and map
those to graphical attributes such as font and color. This allows very
fast visual perusal of the mail message headers to find the messages
that actually need to read, and avoids the crap until you have time
for it.
PowerMail also makes extensive use of drag-n-drop as an
interaction tool. I wrote about 3,000 lines of TCL code over the
winter of 1993-1994 only to find out that someone else (the guys who
wrote the BLT package for TCL) had already done it. I plan to port
PowerMail to this toolkit later if time permits. However, almost all
the functions of PowerMail are accessible by simply picking things
up and dropping them on targets. Mail to be deleted may be
dropped on a garbage can icon. Mail to be foldered can be dropped on
the folder icon, etc. This interaction technique has advantages and
disadvantages over more convential (click the button type) approaches
and these (as of now) have not fully be explored.
MIME Support
PowerMail currently understands all the normal MIME multipart message
types as well as a MIME multipart type of its own which includes
layout information. (I'm currently considering writing an RFC on the
issue of interoperable mail layout. ) PowerMail formats messages as a
main body (normally the textual part of the message) and some
attachments. These attachments are placed out in the right margin of
the mail message. This formatting is borrowed (perhaps,
stolen) from the Montage
system.
When composing a PowerMail message, attachments are placed in the
margine by double clicking at the location one would like the
attachment. At the present time, the attachments must be pre-existing
files. The spatial location of the attachment is preserved both
during composition and during presentation to the remote reader,
assuming the remote reader is using PowerMail. If the remote reader
is using other MIME complaint software, the attachment just appears as
a normal multipart section of the message.
Protocols/Standards/Fun Stuff
A list of standards/protocols/fun stuff that PowerMail currently
supports.
- MIME
- As mentioned above, PowerMail makes extensive use of MIME. It
understands both how to read and transmit MIME, although these details
are basically invisible to the user.
- Richtext
- As specified in RFC 1341 by Nathaniel Borenstein, PowerMail
supports the Internet Draft Standard for mail messages containing
formatting, font, and color information. Most of this support was
ripped off from the excellent mailer exmh by Brent Welch. In composing
PowerMail messages you can add emphasis using bold and italics as well
as change the font sizes. This is a part of PowerMail that needs work
as its editor frequently does not do what you expect.
- PGP
- PowerMail is the most crypto-friendly mailer around. Its supports
security and privacy through a drag and drop inteprface to the PGP
(Pretty Good Privacy) program. This allows one to easily encrypt,
decrypt, and verify messages. It was written to be used with PGP
version 2.3 (which I was forced to custom hack to get it to work) and
now I have been passed by the (apparently) superior version PGP 2.5
from MIT (thanks the Derek Atkins and many others including RSA
laboratories for this version). When I upgrade my support to version
2.5 I hope to include some code that is NOT currently available but
tha I have lurking in my lab to allow one to send PGP messages in
"encapsulated" form, as per the Internet draft standards with respect
to PEM (privacy enhanced mail).
- Faces
- PowerMail supports the Faces database and X-Face line, which
encodes the face of the sender. PowerMail displays the face of the
sender or logo of the sender's institution whenever it displays mail.
The Future Of PowerMail
PowerMail is currently not under direct active
development. There are two reasons for this. One is that the author is
currently studying for the PhD qualifying examinations, and doesn't
have a lot of time for a boondoggle such as this. Second, is that the
author is considering a port of PowerMail to the Fresco toolkit that
has become available with X11 Release 6. This would entail a massive,
ground-up rewrite of the program in C++. The jury is still out on
this one. It is not clear yet the amount of coding that would be
necessary to accomplish such a port, although the current estimate is
around 25,000 lines. At some point (in some language) PowerMail will
be completely rewritten to make it more portable, faster, and
generally better than the mess that the internals are in now. It is
unclear exactly when such an undertaking may occur.
Ian Smith
Ian Smith (iansmith@cc.gatech.edu)