WebMail

So.. welcome to my blog. I decided to open this page mostly to tell the history of how and why I came up with the idea of creating the WebMail.

In 1994 I was working as researcher at CRS4, within the team of Genetica Computazionale (Computational Genetics) led by the late Gianluigi Zanetti. I was hired as the team needed a new software developer. We were creating a set of tools and databases to track DNA samples lifecycle through lab exams, sequencing and so on.

The CRS4 was an amazing place to work at. I was 23yo at that time, with 4 years of experience developing software for MSDOS on 286 and 386 PCs with 14″ CRTs, and I had never had access to the internet! There at my new office I had a Unix workstation on my desk, with a huge 21″ CRT monitor ( I remember it took some time to get my eyes used to grasp the whole content of the screen), with full access to everything internet had to offer back then: e-mail, ftp, gopher, usenet newsgroups and the newborn World Wide Web that I could “surf” with early browsers like Mosaic and then Netscape.

After years of C, C++ and x86 assembler, I had to learn new programming language and libraries, namely Perl4 and Tcl/Tk to work on our main project. It was an exciting new world! I was an avid user of Netscape’s integrated Usenet newsgroups client, where I could ask questions about programming issues (I remember my struggle understanding Perl 4 regexp notation!) and people on the other side of the world would actually spend their time to answer me. I wish I had access to it during my previous job!

We were in touch with other researchers around the world. I remember mail exchanges with Lincoln D. Stein, director of informatics at MIT Genome Center and creator of the CGI.pm, which has been a fundamental piece of code in the history of the Web. We were also collaborating with Dr. Mario Pirastu, researcher of genetics of the CNR, who had a lab in the Ospedale Microcitemico in Cagliari.

In January 1995 I went with Zag (at CRS4 we used to call each other with our unix usernames, Zanetti’s was zag, mine was bilbo) to meet Dr. Pirastu at his office. During our meeting, among other matters, he complained about the issues he was having with receiving his e-mail.

At that time, his lab had no direct connection to internet, so the CRS4 had provided him with a Unix workstation, a dialup modem and a e-mail mailbox on CRS4 servers. The workstation was configured to periodically connect with a modem on CRS4 offices, and synchronize a local copy of the mailbox via UUCP (Unix-to-Unix Copy Protocol). Dr. Pirastu would then use the command line Unix ‘mail’ client to read and send emails. That sounds rather “ancient tech” now, doesn’t it?

Unfortunately this contraption wouldn’t work reliably so Pirastu wouldn’t receive new e-mails and his outgoing messages would be sitting in his computer until the synchronization would happen after long delay.

On our way back to the CRS4 offices, Zag and I thought it would be worth exploring if using a web browser we could solve this issue for Dr. Pirastu. That was the sparkle, the first idea that made me stay overtime at the office and led to the creation of the WebMail.

I began investigating the NCSA HTTPd server in use at CRS4 and its support for CGI (Common Gateway Interface) that would let me deliver dynamically generated content for each request. Then I started studying how to write CGI scripts in Perl. I could write code and test it immediately as CRS4’s server would let me publish it directly within folder in my Unix home directory. That’s why you’ll see /~bilbo/ in the URLs we announced on Usenet posts.

I had found about Steven E. Brenner’s cgi_lib.pl, which was the de-facto standard lib to write CGI scripts in Perl, but I had to understand how to use it, how to get request parameters and URI. Also the HTTP protocol was stateless, cookies where just being invented and barely supported. So I had to come out with a way to handle authenticated sessions as the user would click around, navigating from message list to read message to compose pages. Had to learn about SMTP and POP3 protocols and roughly parsing an e-mail structure. Thankfully emails back then where mostly text only messages! I didn’t even study the proper RFCs and didn’t know about MIME.

For the User Interface and navigation I shamelessly followed the same layouts and style of Netscape embedded Usenet client. Even all the icons, I drew them pixel by pixel matching the style of Netscape’s. So the result would somehow feel like the WebMail was part of Netscape’s native features.

My WebMail was written in Perl 4, during February 1995. The 1.0 version was completed Feb 20, 1995 but it wasn’t officially released but for Dr. Pirastu, myself, Zag and a few other people who had their mailboxes hosted in CRS4’s mail server.

I remember Zag was rather impressed by the result, he knew I was working on it as a side project  but I hadn’t given him any preview until I had it working and stable enough. And I wanted it to be complete enough before giving it to Dr. Pirastu. That was when Zanetti and I agreed we should give it away on Usenet for everyone. Actually we’d give it for free for scientific, educational and no-profit organizations, while we thought maybe commercial companies should pay the CRS4 a one time license… We wrote that on our first announcement on Usenet, but never enforced it.

The feeling was that it was something worth sharing with others. We had solved a practical problem we had, but probably others had similar issues and could use our solution. And since the WebMail was built on top of free stuff (the HTTP server, the browsers, the Perl language, the e-mail protocols ) so it was right to give it away for free as well.

So I spent some time to polish it a little, removing all hardwired configurations from the code and getting it ready for distribution and easy installation in various Unix flavours. I tested the installation on all the different workstations I could find at the CRS4. I also created a demo website where people could have a preview of what it would be like to read emails in a browser. 

When we announced the public release, I put it behind a registration form that would simply write in a log file the name and company and IP address of whoever came to download the distribution archive. I remember I and Zag would go through the log file and be amazed and proud, seeing that it was being downloaded from people from NASA, Apple, Digital, The NY Times, universities all over the world and many other well known companies.

In April I received a friendly e-mail from an italian guy who would tell me that if we suddenly would see an increase in visits to the WebMail, that was because I and the WebMail were mentioned in issue 521 of InformationWeek (April 4, 1995) as a good example of how CGI would extend the features of Web servers, from basic hypertext pages to applications. He was so kind to mail me his own copy of the magazine some time after.

This the short history of WebMail releases:
* February 20, 1995 – version 1.0 – non public
* March 10, 1995 – interactive demo – webmail was announced on comp.infosystems.www.announce and a demo was available
* March 14, 1995 – version v1.14 – non public
* March 22, 1995 – version 1.20 – this wasn’t announced but available for download on CRS4 website
* March 30, 1995 – version 1.21 – first public release announced on comp.infosystems.www.announce
* April 28, 1995 – version 1.22
* May 8, 1995 – version 1.22a

I hope you enjoyed the whole story as I remember it!