Old Versions

This page describes an old version of Decimail Webmail. It is retained for historical interest only.

The version described here pre-dates Decimail and is stable and mature. Previously I just called it "Phil's Webmail".

Decimail Webmail is...

1. Introduction

In 2002-2003 I went around the world, and wanted to be able to read my email as I was travelling. This is the webmail application that I developed for that trip. I continue to use it to check my email from work and elsewhere when only a web browser is available. It is simple and stable.

There are plenty of other free webmail applications out there as a search on freshmeat.net will reveal. I started with Perl Webmail from jaos.org. That script ran "out of the box", but I couldn't resist tinkering with it - and being open source I was able to. After a while what I ended up with had practically no resemblance to the original.

2. Features

These features are described in more detail further down the page.

An important limitation of the script is that it functions only for one user connecting to one POP3 account. If you want to provide a webmail service for a number of users, other programs may be more suitable - though adding a multi-user capability would not be a lot of work.

3. News

1 July 2004
Version 2.3 released. This fixes various minor problems; multiple simultaneous composition windows should now work, and the from-address selection menu ought to work on Internet Explorer (can someone please check?). Also, the name has changed to "Decimail Webmail", since I am about to announce my IMAP server project, Decimail.
26 April 2004
Version 2.2 released. I've given the appearance an overhaul, and there is now a two-frame layout with a message list in the upper frame and the current message in the lower frame (screenshots at the end). A new window is popped up for message composition. In other words, it looks more like a "real" email program and less like a web page. Despite the frames and increased Javascript, it can still be used in the text-mode browser Lynx! (These changes have not been tested completely in Internet Explorer, and feedback would be appreciated.)
March 2004
I've added spell checking using the excellent Speller Pages. This is a mixture of client-side javascript and a server-side script that invokes Aspell. It works brilliantly, though it does make installation a bit more complicated.

4. Download

Download from Here.

5. Installation

Here are the installation instructions for the latest version.

6. Feedback

Of course I'd love to hear all your positive feedback - and I'll even listen to criticism if you're not too rude! Please use the forum.

7. QWAZERTY Keyboard Mapping

One thing that I missed while I was away was the keyboard layout that I'm familiar with. You don't have to go far from home to find that the punctuation is in the wrong place, and some places (France!) have their own ideas of where the letters should be. A new feature (currently unique to this webmail system) is the ability to automatically "correct" the keyboard layout as you type your email. I call this QWAZERTY.

You can try out a standalone version of QWAZERTY here. The idea is simple: you select the type of keyboard that you're actually using and the type that you normally use from a pair of menus, and as you type some Javascript "corrects" the characters.

You're welcome to use the QWAZERTY code in your own web applications. And if your users are likely to be struggling with unfamiliar keyboards, they'll thank you for it!

QWAZERTY even includes the Dvorak keyboard layout.

8. Address Book

You'll notice that the message list has a link at the top left labelled "Address Book". This script doesn't actually maintain an address book for you. The link exists so that any HTML address book that you can create by whatever other means can be used from webmail. Within the address books you can link to a message composition window from an email address using code like the following:

<a href="webmail.cgi?action=createmessage;to=foo@blah.com">foo@blah.com</a>

Furthermore, you can make it possible to compose emails to multiple addresses in the address book; use a form with one checkbox per address:

<form action="webmail.cgi" method="GET">
  <input type="hidden" name="action" value="createmessage">
  <input type="submit" value="Compose to selected addresses">

  ... <input type="checkbox" name="to" value="foo@blah.com">
  ... <input type="checkbox" name="to" value="president@whitehouse.gov">
  ... <input type="checkbox" name="to" value="dilbert@dilbert.com">
  ...

</form>

9. Anti-Spam From: addresses

This program lets you set which From: address appears in each outgoing message. You get a text entry into which you can enter any address you choose, and also a menu. Choosing an address from the menu should just copy that value into the text entry [I await confirmation whether this works in Internet Explorer, someone please tell me!].

The addresses that appear in the menu include a fixed list of addresses stored by the script, which you can use if you have different addresses for "home" and "work", for example.

When you are replying to a message the menu of From: addresses will include the address that the original message was sent to. So if, for example, you run a mailing list and someone sends a mail to you at listadmin@lists.foo.com, when you reply the From: address menu will include listadmin@lists.foo.com.

The From: address menu can also supply other address suggestions. I use this as an anti-spam tactic.

Email addressed to anything within my domain comes to me. When I subscribe to a mailing list, give an email address on a web form, or give out an email address by some other means, I choose a new address. If that address subsequently gets on a spammer's list, I just discard all email sent to that address. This seems to work well.

Webmail has two built-in address generating functions that it will try to use to generate anti-spam From: addresses. First, if you are replying to a message, it will supply an address based on the domain name that the original message came from. So if you get a message from blobs.com your reply can come from spam_from_blos@MY-DOMAIN. Second, it can generate an entirely random address. currently it generates a string of five random characters, and fits this into a template that you supply.

This can all be customised by setting various configuration variables. See the installation instructions and the comments in webmail.cgi for details.

10. The Author

Decimail is written by Phil Endecott. I live in Cambridge, England, and have a Ph.D. in computer science from the University of Manchester. I've worked at various high-tech places including the now-sadly-defunct AT&T Labs, writing software and designing hardware. You can find out more about me - mostly pictures of me on various mountains - on my personal web page, http://chezphil.org/.

11. Screenshots

Here are some screenshots. Click on the image to see it full size.

The main window, with the message list above and the selected message shown below:

screenshot

This one has an attached image:

screenshot

Composing a message, and demonstrating QWAZERTY keyboard mapping:

screenshot

Spellchecking:

screenshot