During recent discussion this week, it occurred to me that creating a Mail User Agent (aka Mail Client, like Outlook Express, Thunderbird, etc) would be a fun project to pass time someday.
Some thoughts of what they would look like, assuming it was designed to be a MUA that I would *actually* use myself hehe.
Likely there would be a scriptable mail shell, some what reminiscent of the old unix mail program in practice. Most interesting stuff like sorting and threading, would likely be implemented through a set of post processing modules (user serviceable). That is, in effect virtually anything it does would likely be implemented as an external and easily replaced component lol. I like software that works out of box, has hooks, and gets the heck out of the users way.
A graphical user interface would likely be provided for working things in a more traditional manor, and quite surely would provide simple message view/edit modules if the toolkit offered suitable widgets. I know Qt privides very nice text editing widgets, and since 4.3’ish has even included a Webkit module that could likely handle HTML mail. Although personally, I would just feed it into my web browser instead hehe ;).
I think it would be a fun thing to build someday, maybe even as an exercise in learning Common Lisp or some other interesting language. The big thing though, is it would likely be focused on IMAP initially and skip POP3, and should we say…. that while I love to use IMAP based mail systems, I also completely and utterly hate doing any programming that involves that protocol what so ever! It is just a royal pain, especially if the language has a low level interface to it, which means you really don’t gain much over rolling sockets by hand. That being said, PHP on the other hand, does likely have the least painful API I’ve encountered for IMAP. I’m not sure if that is a compliment or a vex….