Program to develop a Mail Client in Java.

Posted: December 24, 2012 in Java Posts
Tags: , , , , , , , , , , , , ,

English: SMTP transfer model Blue arrows can b...

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.net.*;
import java.io.*;
import javax.swing.*;

public class MailClient
{
public static void main(String []args)
{
JFrame frame = new MailClientFrame();
frame.show();
}
}
class MailClientFrame extends JFrame implements ActionListener
{

private BufferedReader in;
private PrintWriter out;
private JTextField from;
private JTextField to;
private JTextField smtpServer;
private JTextArea message;
private JTextArea response;
private JLabel fromLbl;
private JLabel toLbl;
private JLabel serverLbl;

public MailClientFrame()
{
setTitle(“Mail Client”);
setSize(250,400);

addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);

getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT));

fromLbl = new JLabel(“From: “);
getContentPane().add(fromLbl);

from = new JTextField(20);
getContentPane().add(from);

toLbl = new JLabel(“To: “);
getContentPane().add(toLbl);

to = new JTextField(20);
getContentPane().add(to);

serverLbl = new JLabel(“SMTP Server:”);
getContentPane().add(serverLbl);

smtpServer = new JTextField(20);
getContentPane().add(smtpServer);

message = new JTextArea(5,20);
getContentPane().add(message);

JScrollPane p = new JScrollPane(message);
getContentPane().add(p);

response = new JTextArea(5,20);
getContentPane().add(response);

JScrollPane p1 = new JScrollPane(response);
getContentPane().add(p1);

JButton sendButton  = new JButton(“Send”);
sendButton.addActionListener(this);

JPanel buttonPanel = new JPanel();
buttonPanel.add(sendButton);

getContentPane().add(sendButton);

}

public void actionPerformed(ActionEvent evt)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
sendMail();
}
}
);
}

public void sendMail()
{
try
{
Socket s = new Socket(smtpServer.getText(),25);
out  = new PrintWriter(s.getOutputStream());
in = new BufferedReader(new InputStreamReader(s.getInputStream()));

String hostName = InetAddress.getLocalHost().getHostName();
send(null);
send(“HELO” + hostName);
send(“MAIL FROM:”+ from.getText());
send(“RCPT TO:” + to.getText());
send(“DATA”);
out.println(message.getText());
send(“.”);
s.close();
}
catch(IOException e)
{
response.append(“Error:” + e);
}
}

public void send(String s) throws IOException
{
if(s!=null)
{
response.append(s+”\n”);
out.println(s);
out.flush();
}
String line;
if ( (line = in.readLine())!=null)
{
response.append(line+”\n”);
}
}
}

Advertisements
Comments

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s