In this assignment, you will develop in Java a mail user agent (MUA) with the following features:
Provides a graphical user interface (GUI) for the sender, with fields for the local mail server, sender’s email
address, recipient’s email address, subject of the message and the message itself. The local mail server we
will use is utility.ucmo.edu or ucmo.edu.s6a1.psmtp.com (you can also choose to use other server if you
wish). The mail client’s interface may look like
Part 1 (50 points)
In this part, you will use the JavaMail API to develop the mail client. You need to implement all basic
features shown in the figure 1. The JavaMail API Tutorial and a sample program (JavaMailApp.java) are
available in the folder “JavaMail” on Blackboard. You may consider adding some advanced features
(bonus points) such as cc, bcc, attachment, sending HTML etc.
Bonus Part (10 points)
1. You may consider adding some advanced features such as cc, bcc, attachment, sending HTML etc.
(bonus points 5)
2. Your mail client in part 1 can only be used to send email. In the bonus part, you will use the
JavaMail API to develop a GUI MUA to receive, reply and forward email. Part 2 (50 points)
JavaMail API hides the details of SMTP from you. In order to understand SMTP more thoroughly, in this
part, you will develop the mail client shown in Figure 1 by establishing a TCP connection between the mail
client and the local mail server. Sends SMTP commends to local mail server, receives and processes SMTP
commands from local mail server all by yourself not the JavaMail API. To make it simple, you only need to
implement those basic features shown in Figure 1. The lab instruction and three important snippets of Java
code (Envelope.java, MailClient.java and Message.java) are available in the folder “JavaMail” on
You can incorporate all those features in one mail client which is pretty much a primitive version of some
commercial email clients such as the Microsoft Outlook.
Include the following comment lines for every Java program you write