Impish emailing with Horde
I’ve tried a couple of webmail servers over the years, and have even written my own (which turned out to be harder than I thought, but quite a fun project). But I’ve found most lacking in one or another respect – my own lacking the most.
Let’s face it â€“ email is a simple application, but getting the kind of functionality that a desktop-based client offers and still providing a good user experience is tricky on the web. Gmail showed that it could be done, but I’ve been wanting my own webmail server, nice and close to my email server and not reliant on Google. Squirrelmail is serviceable but not too pretty, and it struggles with large accounts. So browsing the web, I discovered Imp. I was immediately impressed by the screen shots, and thought I’d give it a try.
Installing Imp isn’t a one-step process. It relies on a PHP framework called Horde, and in fact is the application that kicked off the creation of the framework in the first place. Horde in itself is pretty cool. As the developers say, it doesn’t do much itself, but it provides a common solution for authentication, talking to different types of databases, and talking between the applications. The applications available for Horde are cool, and include the webmail client Imp, a contact management system (basically a suped-up address book) called Turba, the Gollem file manager, the Kronolith shared calendar, and a whole bunch of others too numerous to mention.
The power of the framework is that if you’ve installed Imp and you need an address book, you simply add Turba. Want to expand your Imp and Turba into a full groupware suite? Add some more modules.
Installing Horde on a web server isn’t too hard, although the documentation was lacking at times. It runs on Apache 1.x and 2.x, and PHP 4 and PHP 5. You’ll also need a database â€“ I used MySql, and Microsoft SQL, Postgresql and others are also supported.
Imp doesn’t limit you to your own server â€“ you can use it to pick up mail from any IMAP or POP email account, and the Imp configuration lets you manage whether the user can only use the predefined servers or can type in their own server. So you can host it on the same machine as the email server and make it a web front-end for just that server, or offer a service as a front-end to email anywhere.
It does take some configuring â€“ after you’ve downloaded Horde and popped it on your server, you then need to create the database for Horde (pre-prepared scripts come with Horde, thankfully), configure it, and test it. You’ll also need a ton of Pear libraries, but the very compitent test page will inform you of anything that may be missing. Then you download Imp, set up and test. Repeat and rinse for every module you add.
Once you’ve got it all up and running, the first impression is impressive. The user interface is much cleaner than a lot of the alternatives, and quite intuitive. The performance was particularly impressive â€“ Imp can cache the folder structure which means less chatting to the server about IMAP folders.
The interface relies a lot on new windows, which I found a little irritating, particularly since the window size wasn’t always large enough for the content and a lot of it ran off the page. It also wasn’t consistent â€“ opening a mail to read it opened inline, while replying to a mail opened in a new window.
This was a minor issue, however. The large amounts of help documentation and the nifty mouse-over drop-downs for long text more than made up for the problems, I thought.
The interface to write messages is pretty good, especially the rich HTML edit which lets you do all kinds of garish formatting that us Linux geeks know to avoid. (Some of us, anyway.) It even has a “Clear MSOffice Tags” feature so that you can forward mails from some over-done Outlook message to people using alternative mail clients.
Thanks to Horde, you can throw in address book functionality, spell checking, advanced filtering and more without too much effort, adding features to your heart’s content.
It doesn’t use Ajax like Gmail for serious interactivity, but there is another Horde project in the pipeline called Dimp that will use “AJAX-ish technologies to create a more dynamic user experience,” according to the Horde site. I haven’t tested it yet as it hasn’t been released as a stable product yet, but I look forward to trying it out. There’s also Mimp, a stripped-down version of Imp for cellphones and PDAs.
To be honest, you’re not going to get the full functionality of Thunderbird or Evolution or Outlook on Imp just yet, but with the right Horde modules, you can get most of what normal users need every day through a very attractive and usable interface.
Horde itself has definitely captured my imagination, and I intend to learn the framework over the coming weeks, and maybe make a little Horde app of my own.