用了java mail的包
如果用eclipse的自带的applet查看器 什么问题都没有 但是如果放到applet到网页里 就会出现错误
Exception in thread "2" java.security.AccessControlException: access denied (java.security.SecurityPermission insertProvider.SunJSSE)import java.applet.*;
import java.awt.*;
import java.awt.event.*;public class Spam extends Applet implements ActionListener { private static final long serialVersionUID = 1; private Button btn_send = new Button("Send");
private Button btn_over = new Button("Over");
public static TextArea ta_success = new TextArea("Success:\r\n", 30, 25);
public static TextArea ta_error = new TextArea("Error:\r\n", 30, 25); private TextField tf_title=new TextField(15);
private TextField tf_content=new TextField();
private TextField tf_To=new TextField();

public static void main(String[] args) {
// TODO Auto-generated method stub
new Spam().init();
}
public void init() {
setSize(500, 600);
Panel panel0=new Panel(new GridLayout(2, 3));
panel0.add(new Label("Title:"));
panel0.add(new Label("Content:"));
panel0.add(new Label("Target:"));
panel0.add(tf_title);
panel0.add(tf_content);
panel0.add(tf_To);
add(panel0);

Panel panel1 = new Panel(new BorderLayout());
panel1.add(ta_success, BorderLayout.WEST);
panel1.add(ta_error, BorderLayout.EAST);
panel1.add(btn_send, BorderLayout.NORTH);
panel1.add(btn_over, BorderLayout.SOUTH);
add(panel1); btn_send.addActionListener(this);
btn_over.addActionListener(this);
} Thread[] tr = new Thread[5]; public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (e.getSource() == btn_send) {
int t_id=1;
for (Thread thread : tr) {
thread = new Thread(new SendMail(tf_title.getText(),tf_content.getText(),tf_To.getText()));
thread.setName(String.valueOf(t_id));
thread.start();
t_id++;
}
} else if (e.getSource() == btn_over) {
for (Thread thread : tr) {
thread.interrupt();
}
} }
}import java.security.Security;
import java.util.Properties;//import javax.mail.Authenticator;
import javax.mail.Multipart;
//import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeMessage.RecipientType;import com.sun.net.ssl.internal.ssl.Provider;
public class SendMail implements Runnable { private String title;
private String content;
private String To;
public SendMail(String title,String content,String To) {
this.title=title;
this.content=content;
this.To=To;
}

public void run() {
while(true){
Spam.ta_success.setText("线程"+Thread.currentThread().getName()+"开始发送\r\n"+Spam.ta_success.getText());
// TODO Auto-generated method stub
Security.addProvider(new Provider());
Properties pr =new Properties();
pr.put("mail.smtp.host","smtp.exmail.qq.com");
pr.put("mail.smtp.auth", "[email protected]");
/*pr.put("mail.smtp.port", 465);
pr.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
pr.put("mail.smtp.socketFactory.fallback", "false");
pr.put("mail.smtp.socketFactory.port", "465");
pr.put("mail.smtp.auth", "true");*/
Session ses = Session.getDefaultInstance(pr/*,new Authenticator() {@Override
protected PasswordAuthentication getPasswordAuthentication() {
// TODO Auto-generated method stub
return new PasswordAuthentication("[email protected]", "131x.com"); 
}
}*/);
MimeMessage meg=new MimeMessage(ses);
try {
meg.setFrom(new InternetAddress("[email protected]"));
meg.setRecipients(RecipientType.TO, To);
meg.setSubject(title);
Multipart mul=new MimeMultipart();
MimeBodyPart body=new MimeBodyPart();
body.setText(content);
mul.addBodyPart(body);
meg.setContent(mul);
meg.saveChanges();

Transport ts=ses.getTransport("smtp");
ts.connect("smtp.exmail.qq.com", "[email protected]", "131x.com");
ts.sendMessage(meg, meg.getAllRecipients());
ts.close();

Spam.ta_success.setText("线程"+Thread.currentThread().getName()+"发送成功\r\n"+Spam.ta_success.getText());

} catch (Exception e1) {
// TODO Auto-generated catch block
//e1.printStackTrace();
Spam.ta_error.setText("线程"+Thread.currentThread().getName()+"错误:"+e1.getMessage()+"\r\n"+Spam.ta_error.getText());
}
}
}
}