Sift-Mail -- TCL scripting for e-mail sifting


Sift-Mail is a toolkit for e-mail sifting (searching, routing, filtering). It includes:

The mail goal of the Sift-Mail project has been to explore e-mail filtering technology. This has included underlying architectures, a scripting language, a study of possible functionality, and some end user interface design.

One of the main ideas was to have the user-interface work be a major factor driving the design. I used scenario-based design, hoping to understand better what the needs of the end users really were. This involved getting people to describe situations where they got too much mail. I also included things from my own experience and from comments and questions on USENET newsgroups.

A second major goal was to create an architecture that could be used in a POP or IMAP environment. While there is no implementation for these environments yet, this consideration led to the creation of Sift-Tcl, a set of extensions to Tcl. The idea is to use a programming language like TCL to express the sifting rules rather than a simple configuration file. Sift-Tcl can be up-loaded and executed on the server. This way the client has complete control of the sifting functionality and the server is very generic. It is possible for users to program their own sifting functionality without requiring changes to the server.

The implementation is enough to do basic sifting for UNIX email users and can serve as ground work for much more. It includes a Sift-Tcl interpreter to which many more extensions can be added. The interpreter is also available in a library form and can be included in another mail program. There is a library that can be used to manage reading and writing configuration files. Last there is a GUI for X-Windows written in Tk/Tcl for non-expert users.

FTP the Sift-Mail source code
A brief tour of the user interface with screen shots
Man page for sift-mail command
Man page for sift-tcl command.
Sift-Mail change history
Early paper describing design of Sift-Tcl


[Laurence's Main Page] [Island Resort]