This story starts, as so few do, with my need to access my mail on the web….
At first, I needed it so I could check my mail while I was doing the “finding yourself in Europe” bit. (For the record, I found myself, and I wasn’t quite so fat and boring as the fellow looking for me.) I ran some nasty java webmail program on Tomcat. It was perfectly hideous and, about three weeks in, gave up the ghost and started losing my messages. Needless to say, after a few days, most of them were nervous missives from my girlfriend at the time. I got home okay, well, better than okay, actually, but that’s not the point. I decided I hated webmail. It was silly… Mail… over the web. Didn’t god give us telnet for a reason? That reason was to type in IMAP commands.
…I got over that, too–shortly after getting over servlet containers and my girlfriend. I was, you see, too pretty for both of them. Especially that “java” with its “tomcat” and silly things like “coccoon” and “turbine pools“.
I moved on to SquirrelMail* because the new girlfriend needed to read the mail on the domain I set up for her, and she couldn’t do the cool thing and use ssh tunneling to set up an RDP connection to her laptop at home because she works for, I dunno, nazis or something…
I chose SquirrelMail based on a friend’s recommendation, and because it had the simplest requirements. I made this choice even though it uses the dreaded PHP (spits). In addition to using that much-reviled scripting language, SquirrelMail is ugly. It’s like… HTML 3.2 ugly. Netscape 4 ugly. Fred Savage ugly. It’s not pretty, is what I’m trying to get across here.
So I was reading arstechnica, and someone mentions roundcube, which is nifty. It uses the CSS, and the DHTML sauce all the kids are into. It also looks pretty. And, hey, it uses PostgreSQL or SQLite (I simply don’t roll with mySQL, you see).
Except, it doesn’t REALLY work with PostgreSQL. The CVS version does, but it has a broken creation script. It creates a message header column as a varchar(128). I don’t know about you, but my headers are significantly longer than 128 characters. So you have to go in and alter your columns. Well, okay, I’ll use SQLite. Except, I use Fedora Core 4. Which ships with PHP5. Now, usually PHP5 HAS SQLite2, but the fine folks at Fedora think that SQLite3 is what you want, so they remove SQLite support from the php they package.
…So back to the CVS source with me.
So now that I have it running, Roundcube is nice. I like the UI, I like the look, it’s all very slick. But it needs a “preview message”, and better Unicode support.
Oh, and, this is my most important point. Roundcube is an IMAP mail client. IMAP allows you access to your mail in a way that is very database like. Your mail is stored on the server, and you can retrieve headers, subjects, status, and so forth. All very neat and tidy: everything is represented by the IMAP server itself. So… I ask you… why does Roundcube need a database anyway? It actually saves your email to a table. What the Hell?! I got IMAP so I had all my mail saved already… in IMAP. This is what we call “duplication of effort” and it’s nuts. I could see having a small need for saving user preferences. Squirrelmail does this, in a directory. With prefs files. That makes sense to me. I think this proves a corrolary to Zawinski’s law: All programs that have expanded to read mail will eventually also expand to require an RDBMS to function.
*(Honestly, people, where do you GET these names?! “Tomcat”, “SquirrelMail”? “Firefox”? …I’ve got a friend to just refers to all of these with random animal names “yeah, is the new FireStoat ThunderGerbil out yet?”. I think my favorite is the GIMP. Ask yourself, what the hell does the GIMP do? Do you want to know? Is it wholesome? Could you recommend it to your grandmother?)