Class 2 | Intermediate Java 30-IT-397 |
e-mail Example
package mail;
import java.util.Vector;
import javax.swing.JComboBox;
/**
*
* @author default
*/
public class MailFrame extends javax.swing.JFrame {
EmailSocket esocket;
EmailMessage message;
Email email;
/** Creates new form MailFrame */
public MailFrame(String[] args) {
initComponents();
// Instantiate attributes.
esocket = new EmailSocket(args[0],
Integer.parseInt(args[1]));
message = new EmailMessage();
// Give the user a default
message.
txtData.setText("Brandan
Jones is the best instructor I've ever had at UC. This guy is great!");
}
/** This method is called from within the constructor
to
* initialize the form.
* WARNING: Do NOT modify this code. The
content of this method is
* always regenerated by the Form Editor.
*/
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
txtData = new javax.swing.JTextArea();
pnlTop = new javax.swing.JPanel();
lblTo = new javax.swing.JLabel();
Vector emails = new
Vector();
Email email1 = new Email("Dr.
Joseph Steger, President, The University of Cincinnati", "UCInternet2@yahoo.com");
emails.add(email1);
Email email2 = new Email("Dr.
James Vondrell, Dean, UC CECE", "UCInternet2@yahoo.com");
emails.add(email2);
Email email3 = new Email("Ralph
Brueggeman, Coordinator, CECE IT", "UCInternet2@yahoo.com");
emails.add(email3);
Email email4 = new Email("Brandan
Jones, Adjunct Instructor, UC CECE IT", "UCInternet2@yahoo.com");
emails.add(email4);
cboTo = new JComboBox(emails);
lblFrom = new javax.swing.JLabel();
txtFrom = new javax.swing.JTextField();
pnlBottom = new javax.swing.JPanel();
btnSend = new javax.swing.JButton();
addWindowListener(new
java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
jScrollPane1.setViewportView(txtData);
getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);
lblTo.setText("To:");
pnlTop.add(lblTo);
cboTo.setEditable(true);
pnlTop.add(cboTo);
lblFrom.setText("From:");
pnlTop.add(lblFrom);
txtFrom.setColumns(15);
pnlTop.add(txtFrom);
getContentPane().add(pnlTop, java.awt.BorderLayout.NORTH);
btnSend.setText("Send");
btnSend.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnSendActionPerformed(evt);
}
});
pnlBottom.add(btnSend);
getContentPane().add(pnlBottom, java.awt.BorderLayout.SOUTH);
pack();
}
private void btnSendActionPerformed(java.awt.event.ActionEvent
evt) {
// Create the mail message
and send it.
String to = ((Email)
cboTo.getSelectedItem()).getAddress();
message.setTo(to);
message.setFrom(txtFrom.getText());
message.setHostName(txtFrom.getText());
message.setData(txtData.getText());
// Send the mail.
esocket.connect(message);
}
/** Exit the Application */
private void exitForm(java.awt.event.WindowEvent
evt) {
System.exit(0);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
new MailFrame(args).show();
}
// Variables declaration - do not modify
private javax.swing.JTextArea txtData;
private javax.swing.JLabel lblTo;
private javax.swing.JComboBox cboTo;
private javax.swing.JPanel pnlTop;
private javax.swing.JLabel lblFrom;
private javax.swing.JTextField txtFrom;
private javax.swing.JButton btnSend;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JPanel pnlBottom;
// End of variables declaration
}
package mail;
/**
*
* @author default
*/
public class Email {
private String address;
private String name;
/** Creates a new instance of Email */
public Email() {
}
public Email(String name, String address) {
this.name = name;
this.address = address;
}
public void setName(String name) {
this.name = name;
}
public void setAddress(String address) {
this.address = address;
}
public String getName() {
return name;
}
public String getAddress() {
return address;
}
public String toString() {
return name;
}
}
/*
* EmailMessage.java
*
* Created on April 30, 2002, 11:55 PM
*/
/**
*
* @author default
*/
public class EmailMessage {
private String to;
private String from;
private String hostName;
private String data;
/** Creates a new instance of EmailMessage */
public EmailMessage() {
}
public void setTo(String to) {
this.to = to;
}
public void setFrom(String from) {
this.from = from;
}
public void setHostName(String hostName)
{
this.hostName = hostName;
}
public void setData(String data) {
this.data = data;
}
public String getData() {
return data;
}
public String getHostName() {
return hostName;
}
public String getFrom() {
return from;
}
public String getTo() {
return to;
}
}
package mail;
import java.io.*;
import java.net.*;
import java.util.StringTokenizer;
/**
*
* @author default
*/
public class EmailSocket {
String host = "oz.uc.edu";
int port = 25;
PrintWriter out;
BufferedReader in;
/** Creates a new instance of ClientSocket */
public EmailSocket() {
}
public EmailSocket(String host, int port) {
this.host = host;
this.port = port;
}
public void connect(EmailMessage message) {
StringBuffer result
= new StringBuffer();
try {
// Create a socket.
Socket socket = new Socket(host, port);
// Get in and out streams.
out = new PrintWriter(socket.getOutputStream());
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
boolean moreData = true;
receive();
// send("HELO " + InetAddress.getLocalHost().getHostName());
// Had to send something else, the above line was returning 'default'.
send("HELO " + "mail.one.net");
receive();
send("MAIL FROM <" + message.getFrom() + ">");
receive();
send("RCPT TO: <" + message.getTo() + ">");
receive();
send("DATA");
receive();
StringTokenizer tokenizer = new StringTokenizer(message.getData(), "\n");
while(tokenizer.hasMoreTokens()) {
send(tokenizer.nextToken());
}
send(".");
receive();
} catch (IOException
e) {
System.out.println("Error while trying to send e-mail. Message: "
+ e.getMessage());
e.printStackTrace();
}
}
public void send(String s) throws IOException
{
s += "\n";
System.out.println(s);
out.print(s);
out.print("\r\n");
out.flush();
}
public void receive() {
try {
String line = in.readLine();
if (line != null) {
System.out.println(line);
}
} catch (IOException
e) {
System.out.println("Error while attempting to receive data from the e-mail
host. Message: " + e.getMessage());
}
}
public static void main(String args[]) {
}
}
Created by: Brandan Jones December 17, 2001