Here is how you send e-mail in java:
From: "Dr. Douglas Lyon" <lyon@snet.net>
Subject: How do I send e-mail in Java?
Date: Thu, 12 Nov 1998 09:27:58 -0400
package net;
import java.applet.*;
import java.awt.*;
import java.net.*;
import java.io.*;
import java.util.Date;
import gui.ClosableFrame;
public class SendMail extends Applet
{
// The e-mail address all messages are to be sent to; specified in HTML
String webmasterEmail = null;
String serverHostName = null;
boolean standalone = false;
int smtpPort = 25;
Socket socket;
PrintStream ps;
DataInputStream dis;
InetAddress rina;
InetAddress lina;
Form form;
/**
* Initialize the applet.
*/
public void init()
{
setBackground(Color.white);
form = new Form(this);
add(form);
resize(600, 450);
if (serverHostName == null) serverHostName =
getCodeBase().getHost();
if (webmasterEmail == null) webmasterEmail =
getParameter("RECIPIENT");
}
/**
* Show status to the user.
*/
public void showStatus(String s)
{
System.out.println(s);
if (standalone) return;
super.showStatus(s);
}
/**
* Send an e-mail message.
*/
public void send()
throws IOException, Exception
{
// Open connection to SMTP server
socket = new Socket(serverHostName, smtpPort);
// Send the form contents as a message
try
{
rina = socket.getInetAddress();
lina = rina.getLocalHost();
ps = new PrintStream(socket.getOutputStream());
dis = new DataInputStream(socket.getInputStream());
// Send message
sendline("HELO " + lina.toString());
sendline("MAIL FROM:" + form.email());
sendline("RCPT TO:" + webmasterEmail);
sendline("DATA");
sendline(form.message());
sendline(".");
}
catch (Exception ex)
{
socket.close();
throw ex;
}
// Close connection
socket.close();
}
/**
* Send a line of data to the server, and retrieve the handshake
*/
void sendline(String data)
throws IOException
{
System.out.println("sendline out:" + data);
ps.println(data);
ps.flush();
String s = dis.readLine();
System.out.println("sendline in:" + s);
}
/**
* Main routine, for standalone program execution
*/
public static void main(String args[])
{
SendMail ap = new SendMail();
// The server host will be the place running POP
// webmaster e-mail will be recipient
ap.serverHostName = "yourmailserver";
ap.webmasterEmail = "your email address";
ap.standalone = true;
ClosableFrame fr = new ClosableFrame("SendMail");
ap.init();
fr.add("Center", ap);
fr.resize(600, 450);
fr.show();
ap.start();
}
}
/**
* A form for obtaining user input. Customize this for your application,
just
* as you would customize an HTML form for a Web-based e-mail application.
*/
class Form extends Panel
{
SendMail applet;
// The form's elements...
Label nameLabel;
TextField nameField;
Label emailLabel;
TextField emailField;
Label orgLabel;
TextField orgField;
Label msgBodyLabel;
TextArea msgBodyArea;
Button sendButton;
/**
* The constructor
*/
public Form(SendMail ap)
{
applet = ap;
setBackground(Color.white);
setLayout(new GridLayout(2, 1));
// Create a panel to put the text fields and button on
Panel p = new Panel();
p.setLayout(new GridLayout(8, 1));
// Instantiate all the elements, and add them to their
containers...
p.add(sendButton = new Button("Send"));
p.add(nameLabel = new Label("Your Name:"));
p.add(nameField = new TextField(60));
p.add(emailLabel = new Label("Your e-mail address:"));
p.add(emailField = new TextField(60));
p.add(orgLabel = new Label("Your orgainization:"));
p.add(orgField = new TextField(60));
p.add(msgBodyLabel = new Label("Your Message:"));
add(p);
add(msgBodyArea = new TextArea(3, 60));
// Set the size of the form
resize(550, 400);
}
/**
* Return the value in the e-mail address field in the form
*/
public String email()
{
return emailField.getText();
}
/**
* Return the contents of the body of the form, including any
"hidden" fields.
*/
public String message()
{
String m = "";
m += nameLabel.getText();
m += nameField.getText();
m += "\n";
m += orgLabel.getText();
m += orgField.getText();
m += "\n";
m += "Web Origin:";
if (!applet.standalone) m += applet.getDocumentBase();
m += "\n";
m += "Date Sent:";
m += (new Date()).toString();
m += "\n";
m += msgBodyLabel.getText();
m += msgBodyArea.getText();
m += "\n";
return m;
}
/**
* Respond to the button click event: send the message.
*/
public boolean handleEvent(Event e)
{
if ((e.target == sendButton) && (e.id == Event.ACTION_EVENT))
{
// User clicked the Send button; send the message
try {applet.send();}
catch (Exception ex)
{
applet.showStatus("Error; message send
failed:\n " + ex.toString());
return true;
}
applet.showStatus("Message sent");
return true;
}
// Not an event to handle; let the super class try
return super.handleEvent(e);
}
}
|