Program that can communicate with a smtp email server, JAVA Programming

Assignment Help:

Assignment

Your task in this assignment is to develop a Java program that can communicate with a real SMTP email server for sending emails. It should have a graphical user interface (GUI).

LEARNING GOALS

1.  To enhance the functionality of the program developed in Assignment 1 so that the program communicates with an SMTP server using TCP Sockets - i.e. to practise implementing networked applications. 

2.  To practise the development of a graphical user interface (GUI) and use of event handling in Java.

3.  To practise using the extensive Java libraries, e.g. for the TCP connection and the user interface development.

4.  To practise object-oriented development (structuring of program). 

PROGRAM DESCRIPTION

Your program must have the following parts: 

1.  An EmailSender object which receives an object of type Message (created in assignment 1) and sends it using a Socket connection to an SMTP server.

2.  The GUI must have: 

a. Text input fields for each required field, 

b.  a send button to send the email

c.  a clear (or restart) button to clear fields (to, from, subject, message etc)

d.  two text areas, 

i.  one to compose the email message and  ii.  A second to display server responses  

3.  A Logger class which makes a log entry whenever an email is sent or an unsuccessful attempt is made. The log entry is made in a file called 'emaillog.txt', which is in a subdirectory of the directory of the program. The subdirectory is called 'logs'. 

20/04/2011 17:45:55; [email protected]; [email protected]; "Coffee break"; status: success 111111@swin stands for the sender, 222222@swin. for the recipient, and "Coffee break" for  the subject line of the sent message.

4.  The code should be easy to read

 

PROGRAM USE CASE (FUNCTIONALITY)

1.  When the program is started (from command line using "java Test"), the user interface is shown. The sender field shows a default e-mail address.

2.  The user types the necessary data into the appropriate fields. The program validates the e-mail addresses. (The best time to do this is when the cursor leaves the field of an e-mail address.)

3.  When the user presses the Send button, the program creates a Message object and stores all the information in the fields of the user interface in the Message object. 

4.  The EmailSender receives the Message object and opens a connection to the SMTP server.

5.  The event is logged in emaillog.txt. Depending on whether the mail has been sent successfully, the status is 'success' or 'failure'.

6.  In the case of a failure, use the exception handling mechanism to return the error message to the GUI for display. Give as much detail to the user as you can, but not Java messages (users don't understand stack traces).

7.  If the message was sent successfully, clear all fields (except the field that shows server feedback) so that a new message can be typed. Alternatively, you can have a 'Clear' button.

DELIVERABLES

You must submit the following as part of the assignment

1.  Complete source code consisting of the Java classes described in assignments 1 and 2, possibly more.

2.  A UML class diagram of the program. The class diagram should show the names of the classes, the attributes and methods of the classes as well as the relationships between the classes.


Related Discussions:- Program that can communicate with a smtp email server

Arrays, examples of 2D arrays

examples of 2D arrays

Write a program to find the area under the curve y = f(x) in, #question.Wri...

#question.Write a program to find the area under the curve y = f(x) in java.

Program to create shipping company model, This assignment models a simplifi...

This assignment models a simplified delivery company. It is composed of the following departments:  receiving which contains a list of packages to be delivered, shipping which ship

Palindrome, A palindrome is a string that reads the same from both the ends...

A palindrome is a string that reads the same from both the ends. Given a string S convert it to a palindrome by doing character replacement. Your task is to convert S to palindrome

EJB in J2EE? , EJB 2.x is broadly adopted server side component architectu...

EJB 2.x is broadly adopted server side component architecture for J2EE. 1. EJB is a remote, distributed multi-tier system and allows protocols like IIOP, JRMP, and HTTP etc.

What is a packet in the network environment, What is a packet within the ne...

What is a packet within the network environment? What kind of information does it contain? A packet is the shortest unit of data transmitted over a computer network. It's a mes

What is spreadsheet and list any two jobs that it can do, What is spreadshe...

What is spreadsheet? List any two jobs that it can do? A spreadsheet is a grid which organizes data within columns and rows. Spreadsheets form it simple to display information,

How are this () and super() used with constructors, How are this () and sup...

How are this () and super() used with constructors? this() Constructors: is used to pointing current class instance. Can be used with methods or variables. Used to call

State in detail about java virtual machine, State in detail about Java Virt...

State in detail about Java Virtual Machine (JVM) Central part of java platform is java virtual machine Java bytecode executes by special software known as a "virtual machine

How we declaring arrays in java language, How we Declaring Arrays in java l...

How we Declaring Arrays in java language? Like all other variables in Java, an array must have a exact type such as byte, int, String or double. Just variables of the appropria

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd