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)