Mini Project Report - Java Based Email Server System
Mini Project Report - Java Based Email Server System
2011-12
[Type text]
Chapter
1
Chapter title
INTRODUCTION
Page
1
[Type text]
1. Introduction
1.1 Motivation
In this project, we developed our own e-mail server software in Java. The first motivation was that a Java server program can run on any operating system supporting the Java Virtual Machine environment rather than being specific to one operating system. Another motivation was the opportunity to learn a great deal about e-mail protocols, particularly the widely utilized ones, by actually building my own e-mail server software. It gave me not only a theoretical understanding of how e-mail protocols and user account management systems work, but also allowed me to move from theory into actual practice. In addition, the server can be extended in future to other Transmission Control Protocol (TCP)-based server applications for the convenience to other developers who may wish to use my work.
1.2 Objectives
Before undertaking this project, we first had to identify the functionality that must be implemented in order to run our program on a personal computer. To accept basic Simple Mail Transfer Protocol (SMTP) and Post Office Protocol (POP3) requests from e-mail clients, we applied extensions of the TCP server working model to both SMTP and POP3. And to aid management of the e-mail servers and user accounts, we decided to focus on designing and developing basic user account management functionalities first. We then added advanced functionalities later, such as more sophisticated commands to manage servers and accounts. When it was completed, we would compile all the sources into a JAR file so that all classes are ready for future reuse. After completing the first stage of development, we will create a graphical user interface for my server based on a basic version that allows the administrator to manage servers and accounts systems without having to remember and type commands into a command terminal.
[Type text]
2. Literature Survey
2.1 Background
In this project, we were required to research on literature related to e-mail protocol specifications and detailed examples of TCP network implementations in Java before we could iteratively practice designs and implementations for the e-mail server. Further, other literature discusses the TCP network implementation in Java that would help us to design and implement the e-mail protocols.
2.2.1 Simple Mail Transfer Protocol (SMTP) SMTP is an e-mail protocol that enables an e-mail client to send an e-mail message to an SMTP server. The user of the e-mail client does not require a user account and a password registered on the SMTP server to send a message, but some advanced email server systems may require user authentication by accessing an SMTP server. By default, TCP port 25 needs to be available to accept SMTP clients. However, some SMTP servers open a different port number. One reason for this would be to prevent massive spam e-mail traffic to the default port 25 of the SMTP server. SMTP is supported by the proposed e-mail server software since this protocol is widely used all over the world; almost all e-mail servers and clients accept SMTP for e-mail transmission.
2.2.2 Post Office Protocol 3 (POP3) POP3 is also an e-mail protocol that enables an e-mail client to receive an e-mail message from a POP3 server. The user of the e-mail client must have a user account and a password registered on the POP3 server to access his/her e-mail box. By default, TCP port 110 needs to be available to accept POP3 clients.
[Type text]
POP3 is also supported by the proposed e-mail server software since this protocol is used globally and almost all e-mail servers and clients accept this protocol.
[Type text]
the disadvantage is that the random access of the data may consume more time than the data access