Small. Fast. Reliable.
Choose any three.
2005-Sep-30: A New Mail User Agent

Having become increasingly dissatisfied with existing Mail User Agents I decided to write my own. My first attempt is a single Tcl/Tk script, less than 4000 lines in length, which you can download from the attachments below. This script uses the following packages, all of which are included with http://www.activestate.com/Products/ActiveTcl/

   package require sqlite3
   package require mime
   package require pop3
   package require smtp
   package require md4

Design Philosophy

This program is deliberately simple. It speaks POP3 and SMTP only. All email messages are stored in a single SQLite database for rapid indexing and searching.

Everything is shown in a single window. I find the usual 3-window layout with folders on the left, a list of message on top, and the current message on the bottom right to be needlessly complex. This MUA does not support folders because to my mind, folder management is way too much trouble than it is worth. Instead of folders, all email is stored in an SQLite database with full text searching built in. This allows me to find historical email much more quickly.

Emails are displayed in as text/plain only. I deliberately do not support text/html because I find that most HTML email is spam anyway. Anybody with something interesting to say usually sends plain text.

I have lots more to say about this, but other tasks call me away. I hope to return an complete this wiki page soon...

Attachments:

  • ex-mua.zip 31441 bytes added by drh on 2005-Sep-30 13:48:08 UTC.
  • ex-mua-2006-01-27.zip 43927 bytes added by drh on 2006-Jan-27 13:57:14 UTC.
    The source code as of 2006-01-29