Web Mail
This project was completed in late 2002 some time for a university project and following is a description written around the same time frame.
The Web Mail system was written in Perl with support for POP3 protocols (limited IMAP support), attachments (MIME type support for base64 encoded images, appearing inline) and sessions to manage secure login/logout. Additionally Javascript checking was integrated for checking form data. The user is always identified by a unique session ID and is able to operate without the help of cookies. The system also supports multiple languages and redirects the user based on their browser’s language preference.
The code itself takes an object oriented approach, and was designed for easy maintenance and scalability.
The login screen starts off the user session if their account can be authenticated on the mail server. The screen has javascript checking for a valid email and server addresses (synactical check only). This form also displays an email-address field, so the user can select their own reply-to address (or this field can be fixed by the admin). The email address is automatically determined for servers already present in the known server-list. The user’s unique session ID is used this point forth, using HTTP POST to identify the user. Click for larger version.
This screenshot displays the inbox, which lists the email sorted by date. The Subject line is limited to 40 characters in the inbox preview. The From field displays the users name if present, otherwise their email is displayed. The Delete option allows for deletion of multiple emails. The total number of mails present is displayed on the top. Click for larger version.
The Reply to email form uses the from field as specified in the login or from the corresponding known server-list. The system also allows for CC and BCC emailing. The subject line is is prepended with “Re:” and the email body is prepended with “>” in each line and a reply-to line indicating who wrote the message. Once again this form also uses javascript to verify correct addresses in the TO, CC and BCC fields. Click for larger version.
The View Mail screen displays relevant information extracted from the email header. and allows for three options: Reply, Reply All, and Delete. Base64 encoded images
are displayed inline. Attachments are shown as links to a file available for download. Click for larger version.