You are on page 1of 69

1.

INTRODUCTION

Today almost all people use internet for sending & receiving mails .There are many mail servers available like Yahoo! Mail,Gmail rediffmail etc.This Project is similar to general mail servers. It provides facilities like send, receive mails, address book, sent mails etc. The GUI of this mail server is very user friendly and similar to that of other mail server. New user need to fill the registration form for use of mail server. Once registration is done, user can access his account using username and password. Mails received by the user are stored in inbox. Similarly sent mails are store in sent box. User can compose mail by using compose facility.Other functionality like change password, forget password, address book, logout are also available for user.

1

2. SOFTWARE REQUIREMENT SPECIFICATION
Software Requirements :
Operating System User Interface Client-side Scripting Programming Language Web Applications IDE/Workbench Database : : : : : : : Windows XP or higher HTML, CSS, Swing JavaScript Java Servlets, JSP NetBeans 7.1 Microsoft Office Access 2007

Hardware Requirements :
Processor Hard Disk RAM : : : Pentium IV 40GB 256MB

2

3 . SYSTEM DESIGN

3

1 Forgot password form 1.1Data Flow Diagram New User 1.4 Send mails Mail transaction 1.0 Fill registration form 1.3 Check inbox Login 1.6 Logout 4 .3.5 Delete mails 1.2 Login form Registration Registered User 1.

2 Entity Relationship Diagram User n gi Lo Server s re to S ck he C te ele D Mail a/c nd Se o T Mails n tai n Co 5 .3.

3 Sequence Diagram Login in mail account:- User Login Login Screen Server Database Login information Verification Verification Failed Login cancel Verification conform Login conform <<Sequence 2>> 6 .3.

Logout Process:- Login cancel User Logout Logout Screen Server Save Information Conform Logout Redirect to Home Page 7 .

Process of Mail Server:- Login cancel User Check Inbox User Mail a/c Screen Server Database Search for Inbox Search for Query Compose Mails Display Result Save Mail Go To Server Delete Mails Delete and Update Database Transfer to the Users Database <<Sequence >> 8 .

3.4 Use Case Diagram Login Maintain a/c Check mails Send items User Delete folder Server Logout 9 .

frm.Fname. [a-zA-z0-9]{2.frm.frm.Lname.frm.\+]+\@[a-zA-Z0-9\. }//if 10 .\-]+\.Address: <HTML> <HEAD> <script> function chk() { var fnm=document.value.Phone.Nickname.value.value.4.4}$/. document. var email=document.focus().value. var exp1=/^[0-9]+$/. return.frm. var phone=document. var exp2=/^[\w\-\.Email.frm. var nickname=document.value.Fname.CODING: HTML PAGES CODING: 1. if(fnm==""){ alert("First Name should not be empty"). var lnm=document.

Email. }//if if(nickname==""){ alert("Nick Name should not be empty").Nickname.frm.Phone. return.frm. } } 11 .focus().focus().focus().frm.frm.match(exp2)) { alert("Please Enter Valid e-Mail Address"). }//if if(email== ""){ alert(" Email should not be empty").match(exp1)) { alert("Enter Valid Telephone Number Plaese"). document.if(lnm == ""){ alert("Last name should not be empty").frm. return.focus(). return. return.frm. return. }//if else { if(!document. document. return. } }//else if(phone== ""){ alert("Phone should not be empty").Email.frm.Phone.frm. document. }//if else { if(!document.focus().Phone. document.Email.value. document.Lname.focus().value. document.

</TD> <TD height="28" width="185"> &nbsp..</P> <FORM name="frm" action="/project/MailServlet" method="get"> Please provide the following contact information:</P> <BLOCKQUOTE> <TABLE height="160" width="289"> <TR> <TD height="23" width="94"> <EM style="font-style: normal">First Name<b> </b></EM></TD> <TD height="23" width="185"> <INPUT TYPE=TEXT NAME="Fname" SIZE=25> </TD> </TR> <TR> <TD height="28" width="94"> &nbsp.submit()..</TD> </TR> <TR> <TD height="43" width="94"> <EM style="font-style: normal">Last Name</EM></TD> <TD height="43" width="185"> <INPUT TYPE=TEXT NAME="Lname" SIZE=25> </TD> 12 .frm. }//function valuser </script> <TITLE>Address Book</TITLE> </HEAD> <BODY> <H1>Address Book</H1> <HR> <P> This is an address book where you can add your contacts.

</TD> <TD height="23" width="185"> &nbsp.</TD> <TD height="23" width="185"> &nbsp.</TD> </tr> <tr> <TD height="23" width="94"> <p align="left"> <EM style="font-style: normal">E-mail</EM></TD> <TD height="23" width="185"> <INPUT TYPE=TEXT NAME="Email" SIZE=25> </TD> </tr> <TR> <TD height="23" width="94"> &nbsp.</TD> <TD height="23" width="185"> &nbsp.</TR> <tr> <TD height="23" width="94"> &nbsp.</TD> </tr> <tr> <TD height="23" width="94"> <p align="left">Nickname</TD> <TD height="23" width="185"> <INPUT TYPE=TEXT NAME="Nickname" SIZE=25></TD> </tr> <tr> <TD height="23" width="94"> <p align="left">&nbsp.</TD> </TR> <TR> <TD height="23" width="94"> <p align="left"> <EM style="font-style: normal">Phone</EM></TD> <TD height="23" width="185"> <INPUT TYPE=TEXT NAME="Phone" SIZE=25></TD> </TR> 13 .

frm.&nbsp. var lnm=document. var exp2=/^[\w\-\.&nbsp.&nbsp.4}$/.&nbsp.</TABLE> </BLOCKQUOTE> <HR> &nbsp. var email=document.&nbsp. <INPUT TYPE=RESET VALUE="Reset Form"> </FORM> <HR> </BODY> </HTML> -------------------------------------------------------------------------------------- 2.Email.frm.&nbsp .&nbsp.&nbsp.&nbsp.value.Lname.\+]+\@[a-zA-Z0-9\.frm.value.&nbsp .frm.&nbsp.&nbsp. <input type="hidden" name="action" value="add"> <INPUT TYPE="BUTTON" VALUE="Submit" name="submit" Onclick="chk().value.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.\-]+\.&nbsp.value.&nbsp.Address book: <html> <head> <title>Address Book</title> <script> function chk() { var fnm=document.Fname.&nbsp. [a-zA-z0-9]{2.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp. var phone=document."> &nbsp.&nbsp.Phone.&nbsp.&nbsp. 14 .

document. } }//else if(phone== ""){ alert("Phone should not be empty").Lname. return.frm. return. if(fnm==""){ alert("First Name should not be empty"). }//if if(nickname==""){ alert("Nick Name should not be empty").focus().focus(). }//if if(email== ""){ alert(" Email should not be empty").frm.focus().frm.value.frm. return.frm. document. document.frm.frm. return. document. return.focus(). document.match(exp2)) { alert("Please Enter Valid e-Mail Address").focus(). return.Nickname. var nickname=document.Email.Fname. }//if if(lnm == ""){ alert("Last name should not be empty").value. document.Nickname.Email.frm.Email.Phone. 15 . }//if else { if(!document.var exp1=/^[0-9]+$/.focus().

match(exp1)) { alert("Enter Valid Telephone Number Plaese").}//if else { if(!document.submit().value. return..</font></b></p> <form name="frm" action="/project/MailServlet" method="get"> <p>&nbsp.</td> </tr> <tr> 16 .. document.Phone.frm.</td> <td height="28" width="185">&nbsp.Phone.focus().</p> <p><b>Please provide the following contact information:</b></p> <p></p> <blockquote> <table height="160" width="289"> <tr> <td height="23" width="94"><em style="font-style: normal">First Name<b> </b></em></td> <td height="23" width="185"><input TYPE="TEXT" NAME="Fname" SIZE="25"> </td> </tr> <tr> <td height="28" width="94">&nbsp. } } frm.frm. }//function valuser </script> </head> <body> <h1>Address Book</h1> <hr> <p><b><font size="4">This is an address book where you can add your contacts.

&nbsp.</td> </tr> <tr> <td height="23" width="94"> <p align="left"><em style="font-style: normal">Phone</em></td> <td height="23" width="185"><input TYPE="TEXT" NAME="Phone" SIZE="25"></td> </tr> </table> </blockquote> <hr> <p>&nbsp. &nbsp.</td> <td height="23" width="185">&nbsp.&nbsp.</td> <td height="23" width="185">&nbsp.&nbsp.</td> </tr> <tr> <td height="23" width="94"> <p align="left"><em style="font-style: normal">Email</em></td> <td height="23" width="185"><input TYPE="TEXT" NAME="Email" SIZE="25"> </td> </tr> <tr> <td height="23" width="94">&nbsp. <input type="hidden" name="action" value="add"> <button name="B1" onClick="chk()">Save Address </button> 17 .&nbsp.&nbsp.<td height="43" width="94"><em style="font-style: normal">Last Name</em></td> <td height="43" width="185"><input TYPE="TEXT" NAME="Lname" SIZE="25"> </td> </tr> <tr> <td height="23" width="94">&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.</td> </tr> <tr> <td height="23" width="94"> <p align="left">Nickname</td> <td height="23" width="185"> <input TYPE="TEXT" NAME="Nickname" SIZE="25"></td> </tr> <tr> <td height="23" width="94"> <p align="left">&nbsp.&nbsp.</td> <td height="23" width="185">&nbsp.

&nbsp. <input TYPE="RESET" VALUE="Reset Form"> </p> </form> <hr> </body> </html> ----------------------------------------------------------- 3. var desc = document.&nbsp.&nbsp. if(To== ""){ alert(" To field should not be empty").&nbsp.value.&nbsp. 18 .&nbsp. var exp=/^[\w\-\.&nbsp.&nbsp.To.To.\+]+\@[a-zA-Z0-9\.frm.frm.\-]+\.&nbsp.Sub.frm.&nbsp.4}$/.&nbsp.value.&nbsp.&nbsp.&nbsp.[a-zA-z09]{2. var sub=document.&nbsp.&nb sp.value.frm.&nbsp.&nbsp.&nbsp.focus().Desc. document.Compose mail: <html> <head> <meta http-equiv='Content-Language' content='en-us'> <script> function check() { var To=document.

}//if document. } } if(sub== ""){ alert(" subject field should not be empty"). }//if if(desc== ""){ alert("Description Field should not be empty").focus(). document. } </script> <title>Compose</title> </head> <body> <form name ='frm' method='get' action='/project/MailServlet'> <p>&nbsp.frm.value.To.submit(). document.focus(). return.focus().</p> <table border='0' cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#111111' 19 .desc.frm.frm. return.match(exp)) { alert("Please Enter Valid e-Mail Address"). return.frm.To.frm.sub.return. }//if else { if(!document. document.

&nbsp.width='85%' id='AutoNumber1' height='203'> <tr> <td width='8%' height='19'>To :</td> <td width='92%' height='19'><input type='text' name='To' size='31'></td> </tr> <tr> <td width='8%' height='18'>Subject</td> <td width='92%' height='18'><input type='text' name='Sub' size='56'></td> </tr> <tr> <td width='8%' height='124' align="left" >Description</td> <td width='92%' height='124'><textarea rows='10' name='Desc' cols='51'></textarea></td> </tr> </table> &nbsp.&nbsp.&nbsp.Forgot password: <html> 20 .&nbsp. <input type='hidden' name='action' value="Compose"> <input type='button' value='Send' name='btn_send' onclick='check().&nbsp.&nbsp.&nbsp .&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.'> <input type='button' value='Discard' name='btn_discard'> <input type='reset' value='Reset' name='btn_reset'></p> </form> </body> </html> 4.&nbsp.&nbsp.&nbsp.

return. }//if }//else if(ans== ""){ alert(" Answer should not be empty").frm.ans. document.frm.<head> <meta http-equiv="Content-Language" content="en-us"> <meta name="GENERATOR" content="Microsoft FrontPage 5. return.frm.value.Document"> <meta http-equiv="Content-Type" content="text/html.a-z]+$/.focus().uid. }//if else{ var ulen=uid.Editor.value. return.uid.frm. var uid = document. var ans =document. charset=windows-1252"> <title>New Page 1</title> <script> function val() { var exp=/^[A-Z.ans.match(exp))) { 21 . }//if else { if(!(ans. if(ulen<5){ alert("length of user id should not minimum than 5").focus(). document.0"> <meta name="ProgId" content="FrontPage. if(uid == "") { alert(" User Id should not be empty").length.

</td> </tr> <tr> <td width="27%"><b>Enter Question</b></td> <td width="73%"> <select name="ques" maxlength="40"> <option value="Name of pet" selected> Name of pet</option> <option value="Favourite leader"> Favourite leader</option> <option value="Nick Name "> What is your nick name</option> </select> </td> 22 . return false.form.com</td> </tr> <tr> <td width="27%">&nbsp.</td> <td width="73%">&nbsp.</p> <form name="frm" action="/project/MailServlet" method="get"> <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="65%" id="AutoNumber1" name="tab1"> <tr> <td width="27%"><b>Enter User ID</b></td> <td width="73%"><input type="text" name="uid" maxlength="15" size="27"> @Earthmail.submit().alert("Please Enter Valid answer").focus(). document. } } frm. } </script> </head> <body> <p>&nbsp.ans.

&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbs p.</tr> <tr> <td width="27%">&nbsp.&nbsp.&nbsp.&nbsp.&nbsp .&nbsp. </p> </form> </body> </html> ----------------------------------------------------------- 5. <input type="button" value="submit" onClick="val().0"> 23 .&nbsp.&nbsp. Index: <html> <head> <meta name="GENERATOR" content="Microsoft FrontPage 5.&nbsp.&nbsp.&nbsp. </b></td> <td width="73%"><input type="text" name="ans" maxlength="15" size="22"></td> </tr> </table> <input type="hidden" name="action" value="FP"> <p></p> <p>&nbsp.">&nbsp.&nbsp.&nbsp. <input type="reset">&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.</td> </tr> <tr> <td width="27%"><b>Answer&nbsp.&nbsp.&nbsp.&nbsp. &nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.</td> <td width="73%">&nbsp. &nbsp.

01 Transitional//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html. but your browser doesn't support them.htm"> <frameset cols="187. 24 . charset=ISO-8859-1"> <TITLE>Log In</TITLE> </style></head> <script> function valUser(){ var user = document.</p> </body> </noframes> </frameset> </html> 6.<meta name="ProgId" content="FrontPage.Document"> <title>New Page 1</title> </head> <frameset rows="85.form1.htm"> </frameset> <noframes> <body> <p>This page uses frames.user.value. Login: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.htm" scrolling="auto"> <frame name="f2" scrolling="auto" src="f2.*"> <frame name="contents" target="main" src="Menu2.Editor.*" framespacing="0" border="0" frameborder="0"> <frame name="banner" scrolling="no" noresize target="contents" src="index1.

focus().form1.z -index:0" size="22" name="pwd" value=""> <INPUT type="text" style="position:absolute.top:257px. }//if }//else form1.left:754px.z 25 . }//if }//else if(pwd== ""){ alert(" Password should not be empty").length. }//if else{ var plen=pwd.jpg" bgcolor="#FFFFFF" text="#000000"> <form name="form1" action="/project/MailServlet" method="get"> <INPUT type="password" style="position:absolute.user. }//if else{ var ulen=user.pwd.value.form1. if(ulen<5){ alert("length of user id should not minimum than 5"). return.focus().top:301px. }//function valuser </script> <META name="GENERATOR" content="Created by BlueVoda"> </HEAD> <BODY background="back67_10. document.width:176px.pwd. document.form1. if(user == ""){ alert(" User Id should not be empty"). return. if(plen < 6){ alert("length of password should not minimum than 6").left:756px. return.submit().length. return.var pwd =document.width:176px.

h eight:32px.-index:1" size="22" name="user" value=""> <INPUT type=hidden name='action' value='L'> <INPUT type="button" name="sign_in" value="Sign In" style="position:absolute.top:304px.z-index:3" align="left"> <FONT style="font-size:13px" color="#FFFFFF" face="MS Reference Sans Serif"><B>Username</B></FONT> </DIV> <DIV style="position:absolute.he ight:29px.z-index:8" align="left"> <FONT style="font-size:21px" color="#C0C0C0" face="Microsoft Sans Serif"><B><U><a href="/project/pages/registration.left:671px.z-index:2" onClick="valUser().top:451px.width:134px.top:526px.top:258px.he ight:16px.z-index:4" align="left"> <FONT style="font-size:13px" color="#FFFFFF" face="MS Reference Sans Serif"><B>Password</B></FONT> </DIV> <DIV style="position:absolute.left:757px.html'>Forgot&nbsp.width:74px."> <DIV style="position:absolute.html">SIGN UP!!! </a></U></B></FONT><FONT style="font-size:13px" color="#C0C0C0" face="Microsoft Sans Serif"><B> here for EARTH ID</B></FONT> </DIV> </BODY> </HTML> 26 .top:393px.left:660px.width:264px.left:682px.he ight:16px. password ? </a></B></FONT> </DIV> <DIV style="position:absolute.left:672px.width:77px.h eight:25px.width:77px.z-index:5" align="left"> <FONT style="font-size:13px" color="#FFFFFF" face="Microsoft Sans Serif"><B><a href='/project/pages/forget.

a-z]+$/. var exp2=/^[\w\-\.frm.form.value.\-]+\. pwd = document.frm.ans.frm.value. return false.zip.lname.[a-zA-z0-9] {2. zip=document.focus(). ans =document.match(exp))) { alert("Please Enter Valid First Name"). document.frm.city.4}$/.value.frm. document. lnm=document. add=document.uid.value. }//if else { if(!(fnm. return. Registration: <html> <head> <title> Registration form </title> <script> function valUser(){ var exp=/^[A-Z.frm.frm.value.fname. } } 27 . uid = document. var exp1=/^[0-9]+$/.fname.----------------------------------------------------------- 7.add.\+]+\@[a-zA-Z0-9\.pwd.frm.fname.value. cpwd=document.value. if(fnm==""){ alert("First Name should not be empty").frm.cpwd.value. city=document.focus().frm. var var var var var var var var var fnm=document.value.

focus().focus().match(exp))) { alert("Please Enter Valid Last Name").frm.focus().pwd.lname. if(ulen<5){ alert("length of user id should not minimum than 5"). return. return. }//if else{ var ulen=uid.if(lnm == ""){ alert("Last name should not be empty"). document.lname. return false. }//if else { if(!(lnm. document. }//if }//else if(pwd== ""){ alert(" Password should not be empty").length.uid. return.frm. return. document.form. } } if(uid == ""){ alert(" User Id should not be empty"). }//if else{ var plen=pwd. 28 . document.frm.length.focus().

return. return. }//if else { if(!(add.match(exp))) { alert("Please Enter Valid answer").frm. document. return false.focus(). }//if }//else if(cpwd== ""){ alert(" Confirm Password should not be empty"). } } if(add== ""){ alert("Address should not be empty"). return false.focus(). return.frm. return. 29 . }//if if(ans== ""){ alert(" Answer should not be empty").add.if(plen < 6){ alert("length of password should not minimum than 6").focus().match(exp))) { alert("Please Enter Valid address").ans.frm.focus(). document.focus().add. document.cpwd. document.form.form.ans. }//if else { if(!(ans. document.

frm.focus(). } } if(zip== ""){ alert("Zip code should not be empty").form.frm. return.match(exp1))) { alert("Please Enter Valid zip code").focus().zip. return. }//if else { if((!city. document.frm.} } if(city== ""){ alert(" City should not be empty"). return false.focus(). document. return.zip.focus(). return false.form.city. document.zip. } } if(pwd!=cpwd){ alert("Password does not matchwith confirm password").match(exp))) { alert("Please Enter Valid city").city. document. }//if 30 . document.focus(). }//if else { if(!(zip.

</td> <td width="73%">&nbsp.</td> </tr> <tr> <td width="27%">Password :</td> <td width="73%"> <input type="password" name="pwd" size="20" maxlength="20"></td> </tr> 31 . }//function valuser </script> </head> <body> <h1> Registration Details</h1> <p> <b>Enter all details</b></p> <form name="frm" action="/project/MailServlet" method="get"> <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="65%" id="AutoNumber1" name="tab1"> <tr> <td width="27%">First Name :</td> <td width="73%"> <input type="text" name="fname" maxlength="15" size="20"></td> </tr> <tr> <td width="27%">&nbsp.com</td> </tr> <tr> <td width="27%">&nbsp.</td> <td width="73%">&nbsp.submit().</td> <td width="73%">&nbsp.frm.</td> </tr> <tr> <td width="27%">Last Name :</td> <td width="73%"><input type="text" name="lname" maxlength="15" size="20"></td> </tr> <tr> <td width="27%">&nbsp.</td> </tr> <tr> <td width="27%">User id : </td> <td width="73%"> <input type="text" name="uid" maxlength="20" size="20"> @ Earthmail.

</td> </tr> <tr> <td width="27%">Address :</td> <td width="73%"> <textarea rows="3" cols="30" name="add" maxlength="50"> </textarea></td> </tr> <tr> <td width="27%">&nbsp.</td> </tr> <tr> <td width="27%">question :</td> <td width="73%"> <select name="ques" maxlength="40"> <option value=" Name of pet"> Name of pet</option> <option value="Favourite leader"> Favourite leader</option> <option value="Nick Name "> What is your nick name</option> </select></td> </tr> <tr> <td width="27%">&nbsp.</td> <td width="73%">&nbsp.<tr> <td width="27%">&nbsp.</td> <td width="73%">&nbsp.</td> </tr> <tr> <td width="27%">Answer :</td> <td width="73%"> <input type="text" name="ans" maxlength="20" size="20"></td> </tr> <tr> <td width="27%">&nbsp.</td> <td width="73%">&nbsp.</td> </tr> <tr> <td width="27%">City :</td> 32 .</td> <td width="73%">&nbsp.</td> <td width="73%">&nbsp.</td> </tr> <tr> <td width="27%">Confirm Password :</td> <td width="73%"><input type="Password" name="cpwd" size="20" maxlength="20"></td> </tr> <tr> <td width="27%">&nbsp.

&nbsp.&nbsp.&nbsp.</td> <td width="73%">&nbsp.&nbsp.& nbsp.&nbs p.&nbsp.&nbsp.&nbsp. <input type="button" value="submit" onClick="valUser().&nbsp. <input type="reset">&nbsp.&nbsp.&nbsp.&nbsp.">&nbsp.&nbsp.</td> </tr> <tr> <td width="27%">Gender :</td> <td width="73%"> <input type=radio name="gender" value="Male" checked>Male&nbsp.&nbsp.&nbsp .&nbsp.&nbsp.&nbsp.&nbsp.&n bsp.&nbsp. <input type=radio name="gender" value="Female">Female</td> </tr> </table> <input type="hidden" name="action" value="new"> <p> <p>&nbsp.&nbsp.&nbsp.&nbsp.</td> </tr> <tr> <td width="27%">zip code : </td> <td width="73%"> <input type="text" name="zip" maxlength="6" size="20"></td> </tr> <tr> <td width="27%">&nbsp.&nbsp.&nbsp.&n bsp.&nbsp. <input type="button" value="Cancel" name="B3" ></p> </form> 33 .&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.</td> <td width="73%">&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.<td width="73%"> <input type="text" name="city" size="15" maxlength="20"></td> </tr> <tr> <td width="27%">&nbsp.&nbsp.&nbsp.

Document"> <meta http-equiv="Content-Type" content="text/html. var npwd=document. document. Settings: <html> <head> <meta http-equiv="Content-Language" content="en-us"> <meta name="GENERATOR" content="Microsoft FrontPage 5. return. var rpwd = document.rpwd.frm.frm.value. }//if else{ var plen=cpwd.npwd.</body> </html> ---------------------------------------------------------- 8.Editor.frm.focus().value.frm.length.0"> <meta name="ProgId" content="FrontPage.value. 34 . if(cpwd== ""){ alert(" Current Password should not be empty"). return.cpwd. charset=windows-1252"> <title>Settings</title> <script> function valUser(){ var cpwd = document.cpwd. if(plen < 6){ alert("length of current password should not minimum than 6").

rpwd. return. return. return.submit().}//if }//else if(npwd== ""){ alert(" New Password should not be empty"). return. document.frm.npwd. }//if else{ var plen=npwd. }//if }//else if(rpwd== ""){ alert(" Re-Enter Password should not be empty").frm. document.frm. if(plen < 6){ alert("length of New password should not minimum than 6"). }//if frm. }//function valuser </script> </head> <body> 35 .focus().rpwd. document.focus().focus(). }//if if(npwd!=rpwd){ alert("New Password does not matchwith Re-enter password").length.

&nbsp. </b></td> <td width="73%"><input type="password" name="rpwd" maxlength="15" size="20"></td> </tr> </table> <input type="hidden" name="action" value="CP"> <p></p> <p>&nbsp.&nbsp.&nbsp.&nbsp. &nbsp.&nbsp.&nbsp. &nbsp.</td> </tr> <tr> <td width="27%"><b>Re-Enter Password:&nbsp.&nbsp.&nbsp.&nbsp.</p> <form name="frm" action="/project/MailServlet" method="get"> <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="65%" id="AutoNumber1" name="tab1"> <tr> <td width="27%"><b>Current Password:&nbsp.</td> <td width="73%">&nbsp.&nbsp.&nbsp .&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp. </b></td> <td width="73%"><input type="password" name="cpwd" maxlength="15" size="20"></td> </tr> <tr> <td width="27%">&nbsp.&nbsp.&nbsp. &nbsp.<p>&nbsp.&nbsp.</td> <td width="73%">&nbsp.&nbsp.&nbsp. </p> </form> 36 .&nbsp.</p> <p><b>&nbsp.&nbs p. <input type="button" value="submit"onclick="valUser(). </b></td> <td width="73%"><input type="password" name="npwd" maxlength="15" size="20"></td> </tr> <tr> <td width="27%">&nbsp. </b>&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.</td> </tr> <tr> <td width="27%"><b>New Password:&nbsp.&nbsp.&nbsp.&nbsp.">&nbsp. <input type="reset">&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.

import java. import java.sql.</body> </html> JAVA CODING: import java.PrintWriter.IOException. import java. import java.io.rmi.sql. import java. import java. 37 .Connection.SimpleDateFormat.text.ResultSet.ServerException.Statement.SQLException.DriverManager.io. import java. import java.sql.sql.sql.

con).HttpServlet.print("Amol"). cxt. // Connection con = (Connection) 38 = . Connection con DriverManager.import java. if (action.ServletConfig. HttpServletResponse res) throws ServerException.getParameter("user").getParameter("pwd"). import javax.servlet.servlet. try { // login int cnt=0. Connection con = null. HttpSession ses = req. IOException { String action = req. e. ResultSet r = null.forName("sun. import javax.getServletContext(). res. } catch (Exception e) { // TODO: handle exception System.getConnection("jdbc:odbc:email"). import javax.equals("L")) { // validate user String user = req.http.http.ServletContext. public class MailServlet extends HttpServlet { public void init(ServletConfig config) { try { Class. String pwd = req.Date.http.servlet.setAttribute("CON". ServletContext cxt = config.HttpServletResponse.setContentType("text/html"). import javax.servlet.getWriter().getParameter("action"). PrintWriter out = res. import javax.HttpServletRequest.servlet.printStackTrace().odbc.servlet.HttpSession. }// catch }// init public void doGet(HttpServletRequest req.JdbcOdbcDriver").http.jdbc.util. import javax.out.getSession(). Statement st= null.

String lnm=req.forName("sun.next().jdbc. if (cnt==1) { ses.JdbcOdbcDriver").odbc.getParameter("lname").createStatement().close(). } }//if for 'L's if (action.sendRedirect("/project/pages/index.close().println("<h1> Sorry wrong user </h1>"). action="I".// getServletContext().getConnection("jdbc:odbc:email").html"). r.putValue("USR". } }//try catch(Exception e1){e1. st = con.forName("sun.getInt(1). st. con = DriverManager.getConnection("jdbc:odbc:email"). con= DriverManager. String fnm=req. st = null. user). String qry="select count(*) from login where user ='" + user+ "'and pass='"+pwd+"'". try{ Class. st = con. }// if validate else{ out.odbc. try{ Class.equals("new")) { int i=0.getParameter("fname").jdbc.} finally { r.printStackTrace().JdbcOdbcDriver").executeQuery(qry). cnt=r. res. con. 39 .createStatement().getAttribute("CON"). r=st.close().

getParameter("zip"). }//else }//try catch(Exception e1){e1.html>Click Here</a></b>"). r=st. } String qry1="select count(*) from login where user='"+uid+"'".'"+city+"'.executeUpdate(qry). st. st.getInt(1).'"+ans+"')".getParameter("ans").'"+pwd+"'. }else{ gender="F".sendRedirect("/project/MailServlet?action=I").getParameter("uid"). if(gender. i = r.close(). ses.sendRedirect("/project/pages/index. res. res.'"+add+"'.getParameter("add").'"+gender+"'. out.next().println("<h1>User Already Exist</h1><p>").close().getParameter("ques").equals("Male")){ gender="M".'"+zip+"'.html").'"+ques+"'.println("<b><a href=/project/pages/registration. String ques=req. String ans=req.putValue("USR". }//if else{ String qry="insert into login values('"+ uid +"'. uid). String add=req. String gender=req.getParameter("city").getParameter("cpwd").executeQuery(qry1). String zip=req.} finally { r. String cpwd=req.printStackTrace(). String pwd=req.'"+lnm+"'. String city=req.getParameter("pwd"). if(i!=0) { out.'" + fnm +"'. 40 . r.getParameter("gender").String uid=req.

r = st.&nbsp.&nbsp.println("<td width='50%'><b>Subject</td></b>").&nbsp.&nbsp.executeQuery(qry).getConnection("jdbc:odbc:email").&nbsp. 41 .println("</tr>").&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp. out.&nbsp.&nbsp.&nbsp.&nbsp. out. &nbsp.com'".&nbsp.&n bsp.&nbsp.&nbsp. out.&nbsp.&nbsp.&nbsp.&nbsp.println("<td width='20%'><b>Date/Time</td></b>").&nbsp.&nbsp. //out.&nbsp.&nbs p.append("Welcome ").&nbsp.&nbsp. out.&nbs p. } }//if for new user if(action.&nbsp. //r. StringBuffer wel=new StringBuffer().&nbsp.&nbsp.println("<html> <b>"+wel+"</b>").&nbsp.equals("I")) { try{ String usr = (String) ses.&nbsp. wel. out.&nbsp.println("<td width='2%'><input type='checkbox' name='check'></td>").&nbsp. out.&nbsp.&nbsp.&nbsp. st = con.&nbsp.JdbcOdbcDriver"). //out.&nbsp.getAttribute("CON"). &nbsp.&nbsp.&nbsp.&nbsp.&nbsp.getValue("USR").&nbsp.last().&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.println("<b>&nbsp.&nbsp.forName("sun.println("<td width='55%'><b>From</td></b>"). String qry="select * from `box` where `Too`='"+usr+"@earthmail.Inbox</b><p>").&nbsp.createStatement(). out.&nbsp.&nbsp.&nbsp. con = DriverManager.&nbsp.&nbsp.&nbsp.&nbsp.append(usr).&nbsp.&nbsp. out.&nbsp.close(). Class.println("<tr>").&nbsp.println("<table border='2' cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#111111' width='100%' id='AutoNumber1'>").jdbc. // Connection con = (Connection) // getServletContext().&nbsp. wel.&nbsp.con.&nbsp.println("<body>").&nbsp.&nbsp.odbc.&nbsp.&n bsp.&nbsp.

}// while out.next()) { out.println("<b>Inbox</b>").println("<td width='50%'><a href='/project/MailServlet? action=DM&id="+ r.printStackTrace(). } r.jdbc. //out.println("<tr>"). //out.getParameter("tt"). con = DriverManager. out.getString(6)+"></td>").forName("sun. out. out.isFirst()) { break.createStatement(). String tt = req.getString(2) + " </td>").println("</html>"). st = con. try { Class.odbc.println("<td width='50%'>" + r.println("</tr>").JdbcOdbcDriver"). out.equals("DM")) { String id = req.getString(3)+ "</a></td>").println("<td width='2%'><input type='checkbox' name='check'>"). out.getConnection("jdbc:odbc:email").previous(). } }//if of inbox if(action. ResultSet rr=null.println("<td "</td></b>").println("</table>"). out.getParameter("id").getString(6) + 42 .getString(2)+ "'> "+ r.while (r. }//try catch (Exception e) { // e. if(r. width='20%'> " + r.// value="+r.println("</body>").

&nbsp.&nbsp.&nbsp.&n bsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp. out.&nbsp.&nbsp.&nbsp.&nbsp. out.&nbsp.&nbsp.println("<html>")."). rr.&nbsp.println("<tr>").&nbsp. out. out.println( rr.&nbsp.&nbsp.&n bsp.&nbsp.executeQuery(qry).println("<table border='1' cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#111111' width='57%'>").&nbsp. out.getString(4)).&nbsp.&nbsp.&nbsp.&nbsp. out.&nbsp.&nbsp.&nbsp.&nbsp.getString(3)+"</td>").&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp. out.&nbsp.&nbsp.&nbsp.println("</table>"). out.&nbsp. &nbsp.&nbsp.&nbsp. out.println("</tr>"). &nbsp.&nbsp.next().&nbsp.&nbsp. rr=st.&nbsp.&nbsp.&nbsp.&nbsp. out.&nbsp.&nbsp.&nbsp. out.&nbs p.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&n bsp.&nbsp.&nbsp.&nbsp.&nbsp. out.&nbsp. out.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.println("<td rr.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.String qry="select * from box where Frm='"+ id +"' and Dt='"+tt+ "'". out.&nbsp.&nbsp.&nbsp.println("<td width='17%'><b>Subject :</b></td>").getString(2)+"</td>").&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nb sp.&nbsp.&nbsp. out.&nbsp.println("<td width='83%'>"+rr.println("<p><b>&nbsp. width='83%'>" + width='17%'><b>From 43 .&nbsp.&nbsp.println("<td :</b></td>").&nbs p.&nbsp.&nbsp.&nbsp.&nbsp.&nbs p. &nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.println("<tr>").&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp. &nbsp.&nbsp.&nbsp.println("</tr>").println("<body>").&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.println("<p><b>Description: </b><p>").

String fmt = smt.println("</body>").format(d). st = con. String[] tmp=new String[2].forName("sun.close(). st.getParameter("Sub"). tmp=to. con = DriverManager.getValue("USR").JdbcOdbcDriver"). }// Compose if(action.println("</html>").sendRedirect("/project/pages/Compose.close(). String desc=req. String to=req. try{ String usr = (String) ses. Class. SimpleDateFormat smt = new SimpleDateFormat(" E dd/MM/yyyy hh:mm:ss a").getParameter("To"). String from=usr.equals("Compose")) { ResultSet rs=null.getParameter("Desc").split("@").out.close().odbc.equals("C")) { // show compose html res.html"). }//try catch(Exception e){} finally { try{ rr.getConnection("jdbc:odbc:email"). out. Date d= new Date(). }//try catch(Exception ee){} }//finally }//if dm //to display compose page href='/project/MailServlet? if (action. con. String sub=req.createStatement().jdbc. 44 .println("<p><a action=I'>Back</a>"). out.

println("<b><a href=/project/pages/Compose.printStackTrace(). } finally { r.'"+from+"@earthmail.forName("sun. } else { String qry="insert into box values('"+ to +"'.executeUpdate(qry).String user='"+tmp[0]+"'". int nt=rs.'send'.odbc.close().getValue("USR").'"+mdate+"')". 45 . } }//try catch(Exception e2) { e2.html>Click Here</a></b>"). st = con. out.com'. rs.JdbcOdbcDriver").executeQuery(qry1). st.getInt(1). // Connection con = (Connection) // getServletContext().println("User does not exist"). if(nt==0) { out.createStatement(). out.'"+desc+"'. st.equals("A")) { try{ String usr = (String) ses.close().getConnection("jdbc:odbc:email"). Class.'" +sub +"'.getAttribute("CON"). qry1="select count(*) from login where rs=st. con. } }//if of send composed if(action.next().close(). String mdate=fmt.println("<h1> Mail Sent Successfully </h1>").jdbc. con = DriverManager. rs.close().

out.println("<td width='20%'><b> Name</td></b>").println("input value='add'"). out.println(" <input type='submit' name='addn' value='Add Address'>"). out.println("</tr>").println("</table>"). out.println("<td width='35%'><b>Phone No</td></b>"). out. out.println("<td width='30%'><b>Email Id</td></b>").getString(3) + " </td>"). }// resultset out. //if(flg==1){ //out.println(" </a>"). out. out.println("<form name='frm'method='get'action='/project/MailServlet' >"). out. qry="select * from `address` where int flg=0.next()) { out. out.String `User_id`='"+usr+"'". out. out.println("<td width='15%'>" + r.println("<td width='15%'><b>NickName</td></b>").println(" <input value='address'>").println("<td width='20%'>" + r.println("</tr>").println("</form>"). out.getString(1) + " "+ r. out. out.getString(2)+" </td>").println("<td width='35%'>" + r. 46 type='hidden' name='action' type='hidden' name='action' .println("<table border='1' cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#111111' width='100%' id='AutoNumber1'>"). out. out. out.getString(4) + " </td>"). out. out.println("<body>").println("<tr>"). r = st.println("</head>").executeQuery(qry).println("<html>").println("<head>").println("<tr>").getString(5) + " </td>").println("<td width='30%'>" + r. while (r. out.

executeUpdate(qry).//res.'" +nname +"'. fname st. con DriverManager.sendRedirect("/project/MailServlet?action=A"). st = con.println("</body>").equals("address")) { res. String email=req. = String qry="insert into address values('"+ +"'.odbc.getParameter("Phone").'"+phone+"'.println("</html>").htm"). } catch (Exception e) { // e.forName("sun.getParameter("Email"). String phone=req.getParameter("Nickname").printStackTrace(). //} out.sendRedirect("/project/pages/address_book.JdbcOdbcDriver").getValue("USR").} finally { 47 .'"+usr+"')".getParameter("Fname"). }catch(Exception e2){e2.getConnection("jdbc:odbc:email").htm "). Class.sendRedirect("/project/pages/address_book.jdbc.equals("add")) { try { String usr = (String) ses.printStackTrace().htm"). }//if action ===for address book link(to open page only) if(action.'"+lname+"'. String fname=req.'"+email+"'. out. } if(action.getParameter("Lname"). res. String lname=req.createStatement(). String nname=req.sendRedirect("/project/pages/address_book. } //res.

// Connection con = (Connection) // getServletContext(). out. out. String qry="select * from `box` where `Frm`='"+usr+"@earthmail. out.println("<table border='2' cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#111111' width='100%' id='AutoNumber1'>").try{ r. r = st.createStatement().JdbcOdbcDriver").odbc.} } }//if action for address book link(to save address) if(action.printStackTrace().getConnection("jdbc:odbc:email").close().jdbc. out.getAttribute("CON").forName("sun. st = con.close().println("<b>Sent mails</b>"). st. out. out.getString(1) + " </td>"). while (true) { out. out.executeQuery(qry). out. type='checkbox' 48 .println("<body>").close(). r.getValue("USR"). }catch(Exception e2){e2. con = DriverManager. con.println("<tr>"). out.println("<td width='32%'><b>Date/Time</td></b>").println("<td width='3%'><input name='check'></td>").println("<td width='2%'><input type='checkbox' name='check'></td>").println("<td width='35%'>" + r.equals("S")) { out.last(). Class.println("<td width='35%'><b>TO</td></b>").println("<html>").println("</tr>").println("<tr>"). out.println("<td width='36%'><b>Subject</td></b>").com'". try{ String usr = (String) ses. out.

isFirst()) { break.ans.getParameter("uid").que.println("</html>").html"). ans=req. if(r. try { Class.odbc. out.sendRedirect("/project/pages/settings.forName("sun.jdbc.println("<td width='32%'> " + r. con = DriverManager.getString(3) + "</a></td>").out.printStackTrace().qry. st = con. }//try catch (Exception e) { // e. ResultSet rr=null.previous().JdbcOdbcDriver").println("<td width='35%'><a href='/project/MailServlet? action=SM&id=" + r.getConnection("jdbc:odbc:email").getString(6) + "</td>"). int c=0. out. 49 . out. que=req. } if(action.createStatement().getString(1)+"&tt="+r.getString(6) + "'> " + r.equals("FP")){ String usr.println("</tr>").getParameter("ans").println("</table>"). } }//if of sent //settings if(action. usr=req.getParameter("ques"). }// resultset out.println("</body>"). } r.equals("ST")){ res. out.

next().executeQuery(qry).createStatement().equals("CP")){ String usr = (String)ses.html"). String pp1 = req.next().getString("pass")+"</h1>"). rr=st.forName("sun.getParameter("npwd"). out.printStackTrace(). con = DriverManager.JdbcOdbcDriver").getParameter("cpwd"). r. 50 . out. ResultSet rr=null. } } if(action.executeQuery(qry). st = con.jdbc.println("<a href='/project/pages/login.close(). r=st.getConnection("jdbc:odbc:email").qry="select count(*) from login where user='"+usr+"' and question='"+que+"' and answer='"+ans+"'".next().getInt(1). r. st. rr.getInt(1). String qry="select count(*) from login where user='"+ usr +"' and pass='"+pp+ "'". } if(action. c=r.} finally { r.executeQuery(qry).html'>OK</a>").odbc.sendRedirect("/project/pages/login.getValue("USR"). String pp = req.println("<h1>Your Password is:"+ rr. } }catch(Exception e){e.equals("LO")){ ses.close(). int c=0. rr. if(c!=0){ qry="select * from login where user='"+usr+"'and question='"+que+"' and answer='"+ans+"'".removeValue("USR"). c=r. try { Class. res. r=st.close().

out.getConnection("jdbc:odbc:email").getString(1).equals("SM")) { String id = req.getString(8) +"'.println("<body>"). rr. city='"+rr.forName("sun.getString(6) +"'. try { Class. zip_code='"+rr.close().getString(7) +"'. address='"+rr. qry="update login set user='"+rr. out.printStackTrace().JdbcOdbcDriver"). gender='"+rr.executeUpdate(qry).getString(4) +"'. st = con. 51 .fname='"+rr. rr=st. String from1=rr. String tt = req.getParameter("tt").next(). question='"+rr. st.executeQuery(qry).getString(9) +"'. lname='"+rr. rr. con = DriverManager.println("<html>").getString(5) +"'. pass='"+pp1 +"' . rr.odbc.if(c!=0){ qry="select * from login where user='"+ usr +"' and pass='"+pp+ "'". st.close().createStatement(). answer='"+rr.jdbc. out.next(). out. } }catch(Exception e){e.println("<b>Sent mails</b>"). ResultSet rr=null. } } if(action.getParameter("id").getString(1) +"'.close(). rr=st.getString(3) +"'.println("<h1>Password changed Successfully</h1>").} finally {r.executeQuery(qry). String qry="select * from box where Too='"+ id +"' and Dt='"+tt+ "'".getString(10)+"' where user='"+ usr+"'".

&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp. &nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.println("<td width='8%' height='19'>To:</td>").&nbsp.&nbsp. out.&nbsp.&nbsp. &nbsp.&nbsp.&nbsp.close().&nbsp.&nbsp.println("<tr>").&nbsp.&nbsp.&nbsp.getString(3)+"</td>").println("</tr>").&nbsp.&nbsp. out.&nbsp.&nbsp. out.println("<tr>").&nbsp.&nbsp.&nbsp.&nbsp.&nbsp. out.&nbsp.&nbsp.&nbsp. out.&nbsp.&nbsp.&nbsp.&n bsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.").&nbsp.&nbsp. out.&nbsp.println("<table border='2' cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#111111' width='85%' id='AutoNumber1' height='203'>").&nbsp.&nbsp.&nbsp.&nb sp.&nbsp.&nbsp.&nbsp. out.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.getString(4)+"</td>").&nbs p.&nbsp. }//try catch(Exception e){} finally { try{ rr.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.println("<td height='18'>Subject</td>").&nbsp. out. out.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.println("<td width='92%' height='124'>" + rr. &nbsp. out.&nbsp.&nbsp.&nbsp.&nbsp.println("<td width='92%' height='18'>" +rr.close().println("<p><b>&nbsp.&nbsp.println("<td align='left' >Description</td>").&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbs p.&nbsp.&nbsp.println("</body>").&n bsp.println("<tr>").println("<td width='92%' height='19'>"+from1+"</td>").&nbsp. out.&nbsp.&nbsp.&nbsp.println("</table>").&nbsp.&nbsp.&nbsp.out.&nbsp.&nbsp.&nbsp.&nbsp. out.println("</tr>"). out. 52 width='8%' height='124' width='8%' .&nbsp.&nbsp.&nbsp.println("</tr>").&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp. out.&nbsp.&nbsp.println("</html>").&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp. &nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&nbsp.&n bsp.&nbsp. out.&nbsp.&nbs p.&nbsp.&nbsp.&nbsp. out.&nbsp.&nbsp.&nbsp. st.&nbsp.

close(). Login Table: 53 . }//try catch(Exception ee){} }//finally }//if sm }//try catch(Exception e){ e.printStackTrace(). } finally{} }// /service }//class ---------------------------------------------------------------------------------------------------------- DATABASE TABLES: 1.con.

Field name fname lname user pass address gender Zip code question answer city Data type varchar varchar varchar varchar varchar varchar int varchar varchar varchar Length 15 15 20 20 50 1 6 40 20 20 2 .Mail Table: Field name To From Desc Flag Date Subject Data type varchar varchar varchar varchar varchar varchar Length 1000 100 10000 10 30 100 54 .

Address Book: Field Name Fname Lname Nname Email Phno User_id Data type varchar varchar varchar varchar varchar varchar Length 20 20 20 50 12 30 55 .3.

SNAPSHOTS 1. Login Form: 56 .5 .

2. New Registration Form: 57 .

3. Forgot Password Form:

58

59

4. INBOX: 60

Compose Section: 61 .5.

Address Book Details: 62 .6.

7. Address Book: 63 .

8. Change Setting: 64 .

Future Scope 65 .6.

To give delete mails facility. To incorporate attach files facility at compose time. As well as Send many mail to one or many users. Project Summary 66 .• • • • To add some chatting facility in this system. 7. To send one mail to many users.

The GUI of this mail server is very user friendly.It also provide registration of new user. receiving and compose mails Limited data storage is allocated to each user . System provide facility if user forget password by using proper process.User can change password using setting option as well as maintain details of friends in address book. User can compose mail by using compose option. 8.The Mail server is develop to facilitate the user for sending. REFERENCES 67 . User can check received as well as sent mails.

sun.com www.google .com 68 .Bibliography: • • • • Head First Servlet & JSP: Kathy Sierra Black Book of Java : Steven Holzneretal Complete Reference-Java Java .Balgurusamy References: • • www.

69 .