www.pudn.com > networktools.rar > sendMailApplet.java
package mailapplet;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import java.io.*;
import java.util.*;
public class sendMailApplet extends Applet {
private boolean isStandalone = false;
private Label label1 = new Label();
private TextField textField1 = new TextField();
private Label label2 = new Label();
private TextField textField2 = new TextField();
private Label label3 = new Label();
private TextField textField3 = new TextField();
private Label label4 = new Label();
private TextField textField4 = new TextField();
private Label label5 = new Label();
private TextArea textArea1 = new TextArea();
private Button button1 = new Button();
private Button button2 = new Button();
//Get a parameter value
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
}
//Construct the applet
public sendMailApplet() {
}
//Initialize the applet
public void init() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
label1.setText("邮件服务器地址");
label1.setBounds(new Rectangle(32, 27, 87, 27));
this.setLayout(null);
textField1.setBounds(new Rectangle(122, 25, 162, 24));
label2.setText("发件人地址");
label2.setBounds(new Rectangle(31, 67, 88, 31));
textField2.setBounds(new Rectangle(122, 68, 163, 25));
label3.setText("收件人地址");
label3.setBounds(new Rectangle(31, 108, 88, 31));
textField3.setBounds(new Rectangle(123, 107, 163, 26));
label4.setText("主题");
label4.setBounds(new Rectangle(33, 152, 59, 30));
textField4.setBounds(new Rectangle(123, 148, 162, 25));
label5.setText("正文");
label5.setBounds(new Rectangle(32, 254, 42, 27));
textArea1.setBounds(new Rectangle(86, 194, 257, 187));
button1.setLabel("发送");
button1.setBounds(new Rectangle(102, 408, 76, 27));
button1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
button1_actionPerformed(e);
}
});
button2.setLabel("重写");
button2.setBounds(new Rectangle(192, 407, 80, 27));
button2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
button2_actionPerformed(e);
}
});
this.add(textField1, null);
this.add(label1, null);
this.add(label2, null);
this.add(textField2, null);
this.add(textField3, null);
this.add(label3, null);
this.add(textField4, null);
this.add(label4, null);
this.add(label5, null);
this.add(textArea1, null);
this.add(button1, null);
this.add(button2, null);
}
//Start the applet
public void start() {
}
//Stop the applet
public void stop() {
}
//Destroy the applet
public void destroy() {
}
//Get Applet information
public String getAppletInfo() {
return "Applet Information";
}
//Get parameter info
public String[][] getParameterInfo() {
return null;
}
//Main method
public static void main(String[] args) {
sendMailApplet applet = new sendMailApplet();
applet.isStandalone = true;
Frame frame;
frame = new Frame() {
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
public synchronized void setTitle(String title) {
super.setTitle(title);
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
}
};
frame.setTitle("Applet Frame");
frame.add(applet, BorderLayout.CENTER);
applet.init();
applet.start();
frame.setSize(400,320);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
frame.setLocation((d.width - frame.getSize().width) / 2, (d.height - frame.getSize().height) / 2);
frame.setVisible(true);
}
void button1_actionPerformed(ActionEvent e) {
String mail_host = textField1.getText();
String from = textField2.getText();
String to = textField3.getText();
String subject = textField4.getText();
String body = textArea1.getText();
if ((from==null)||(from.trim().length()==0)) //若发件人输入框为空则提示错误
{
JOptionPane msg = new JOptionPane();
JOptionPane.showMessageDialog(this, "发件人地址不能为空!", "地址不能为空!", 0);
}
else if ((to==null)||(to.trim().length()==0)) //若收件人输入框为空则提示错误
{
JOptionPane msg = new JOptionPane();
JOptionPane.showMessageDialog(this, "收件人地址不能为空!", "地址不能为空!", 0);
}
else
{
try
{
Properties props = new Properties();
props.put("mail.host", mail_host); //设置邮件服务器的名称
props.put("mail.transport.protocol", "smtp"); //设置邮件传输协议为pop3
Session sendMailSession;
boolean sessionDebug = false;
sendMailSession = Session.getDefaultInstance(props, null); //产生一个发送邮件的Session实例
sendMailSession.setDebug(sessionDebug);
Message newMessage = new MimeMessage(sendMailSession); //产生一个Message类的实例用来设置邮件内容
newMessage.setFrom(new InternetAddress(from)); //设置发信人的地址
InternetAddress[] address = {new InternetAddress(to)};
newMessage.setRecipients(Message.RecipientType.TO, address); //设置收信人地址
newMessage.setSubject(subject); //设置信件主题
newMessage.setSentDate(new Date()); //设置信件发送日期
newMessage.setText(body); //设置信件正文内容
Transport.send(newMessage); //发送信件
JOptionPane msg = new JOptionPane();
JOptionPane.showMessageDialog(this, "发送邮件成功!", "发送邮件成功!", 1);
textField1.setText("");
textField2.setText("");
textField3.setText("");
textField4.setText("");
textArea1.setText("");
}
catch(Exception e1)
{
JOptionPane msg = new JOptionPane(); //捕捉异常情况
JOptionPane.showMessageDialog(this, "不能发送邮件!", "不能发送邮件!", 2);
e1.printStackTrace();
}
}
}
void button2_actionPerformed(ActionEvent e) { //用户点击“重写”按钮产生的动作
textField1.setText("");
textField2.setText("");
textField3.setText("");
textField4.setText("");
textArea1.setText("");
}
}