Vous êtes sur la page 1sur 6

[Type text]

Mini Project Report on

Intelligent Email Server System based on Java


By Gokul.S (1SI09CS028) Darshan.M(1SI09CS024) B.Niket(1SI09CS022)

GUIDE Prof.Kallinatha.H.D. B.E,M.Tech


(Associate professor)

Department of computer science & engineering Siddaganga institute of technology, Tumkur-572103

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 Email Protocol Literature

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.

3.3 Java Literature


3.3.1 Design Patterns Design patterns helped me to design and implement the proposed e-mail server efficiently. These patterns were particularly useful for developing my e-mail server software because the code organizations were complicated; however, I have to provide extensions for future developments. From the literature that I referenced, there are 23 three basic design patterns that I could use. 3.3.2 Input/Output Text input/output is for the communication between a server and its clients; this communication is required to transmit e-mail protocol commands and their responses. It is also for writing and reading the user account data that are to be saved. 3.3.3 TCP Network TCP network communication between a server and its clients is possible by using Socket classes provided in the java.net package. It is useful to implement the Socket for both SMTP and POP3 servers and their clients since the TCP communication protocol has already been implemented in a Socket class. This implies that there is no need to rewrite any specifications at the TCP-layer level or below; therefore, I can concentrate on the implementation of Application-layer protocols, i.e. SMTP and POP3. 3.3.4 Data Structure List data structures are extensively implemented in order to dynamically store objects. I used two different list data structures for the e-mail server software. 3.3.4.1 Array List One is the Array List data structure. The advantage of implementing this data structure is that it provides an efficient random access to the list specified by an index. However, the disadvantage is that this data structure constructs an array each time the size of the list is changed. This may be inefficient if the list changes many times while the program is being executed. 3.3.6.2 Linked List The other list data structure is the Linked List. The advantage of implementing this data structure is that this list allows flexible size changes while the program is running. This implies that efficient insertions and deletions can be made without rebuilding the entire data structure. On the other hand,

[Type text]

the disadvantage is that the random access of the data may consume more time than the data access

Vous aimerez peut-être aussi