Abstract:
Email has long been a most popular mode of electronic communication. Initially, email communication was between multi-user hosts using the SMTP protocol, and later on, with the popularity of client-server communication, protocols such as POP, IMAP and Submit were developed for connecting e-mail clients and servers. Today, the most popular method of e-mail access is via a web browser. However, there is still a lack of standard protocol defined for e-mail access via web browsers. All the current web-mail systems use proprietary communication between web interfaces and the backend server. Therefore, each web-mail system can only be accessed with its own web interface and vice versa. Therefore, it is opportune to develop a standard protocol for email servers and browser-based email clients harnessed with HTML5 capabilities to communicate over the HTTP protocol.
Representational State Transfer (REST) is a popular architectural style to implement applications using the HTTP protocol and offers many features such as scalability and loose coupling. This would be beneficial in implementing browser-based email clients and would make it possible to create an open standardised HTTP based protocol similar to SMTP.
In this dissertation, we analyse the major REST and non-REST HTTP-based e-mail protocols and APIs, starting from Paul Prescod's initial proposal, as well as other email protocols such as IMAP, and identify the set of features required of an http-based e-mail protocol. We then define a standard API for this purpose, combing the strong features of current systems and protocols. The REST API introduced in this dissertation provides the needed functionality of an e-mail system, including authentication, sending emails, reading emails and managing emails & attachments. Furthermore, we specify messaging formats, error codes and notification mechanisms for the system. We have also developed a server-side implementation which supports the API.
We have run the e-mail system under three scenarios, and show that it has acceptable functionality and performance.