📄 sendmail.java
字号:
package tools.util;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMultipart;
import javax.mail.*;
import javax.activation.FileDataSource;
import javax.activation.DataHandler;
import java.util.Vector;
import java.util.Properties;
import java.util.Date;
import java.util.Enumeration;
/**
* Created by zywang
* Date: 2007-2-8
* Time: 15:46:56
*/
public class SendMail extends Thread{
private InternetAddress[] toAddress;
private InternetAddress fromAddress;
private String SMTPServer = "smtp.163.com";
private String username = "eatba";
private String password = "05568925952";
private String subject = "";
private String content = "";
private Vector attachment = new Vector();
private boolean bHTML = true;
private String[][] addressArray = {{"eatba@163.com","false"},{"xboss.wang@gmail.com","false"},{"eatba.com@gmail.com","false"},{"wongzy2000@sohu.com","false"},{"eatba.com@gmail.com","false"},{"wongzy2000@sohu.com","false"}};
public void run() {
boolean bl = false;
for(int i = 0;i < addressArray.length;i++){
if(addressArray[i][1].equals("false")){
bl = true;
break;
}
}
while(bl) {
try {
sendEmail();
Thread.sleep(2000);
} catch(Exception e) {
System.out.println(e);
}
}
}
public SendMail(String from,String subj,String cont){
try{
this.fromAddress = new InternetAddress(from);
this.subject = subj;
this.content = cont;
}catch(Exception error){
error.printStackTrace();
}
}
public String sendEmail() throws MessagingException{
String oneToAddress = this.getOneAddress();
if(oneToAddress!=null){
toAddress = InternetAddress.parse(oneToAddress);
Properties props = new Properties();
Session session;
props.put("mail.smtp.host", SMTPServer);
props.put("mail.smtp.auth", "true");
SendMail.PopupAuthenticator popA = new SendMail.PopupAuthenticator(); //邮件安全认证。
PasswordAuthentication pop = popA.performCheck(username, password); //填写用户名及密码
session = Session.getInstance(props, popA);
try{
Message msg = new MimeMessage(session);
msg.setFrom(fromAddress);
msg.setRecipients(Message.RecipientType.TO, toAddress);
msg.setSubject(subject);
msg.setSentDate(new Date());
if(attachment.isEmpty()){
if (!bHTML){
msg.setText(content);
}else{
MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setContent(content, "text/html; charset=gb2312");
Multipart mp = new MimeMultipart();
mp.addBodyPart(mbp1);
msg.setContent(mp);
}
}else{
MimeBodyPart mbp1 = new MimeBodyPart();
if( !bHTML)
mbp1.setText(content);
else
mbp1.setContent(content, "text/html");
Multipart mp = new MimeMultipart();
mp.addBodyPart(mbp1);
Enumeration eFile = attachment.elements();
while(eFile.hasMoreElements()){
MimeBodyPart mbp2 = new MimeBodyPart();
FileDataSource fds = new FileDataSource((String)eFile.nextElement().toString());
mbp2.setDataHandler(new DataHandler(fds));
mbp2.setFileName(fds.getName());
mp.addBodyPart(mbp2);
}
msg.setContent(mp);
}
Transport.send(msg);
System.out.println("success");
return "Success";
}catch(Exception e){
System.out.println("Error: " + e.getMessage());
e.printStackTrace();
return e.getMessage();
}
}else{
System.out.println("发送完毕");
return "发送完毕";
}
}
public class PopupAuthenticator extends Authenticator {
String username = null;
String password = null;
public PopupAuthenticator() {
}
public PasswordAuthentication performCheck(String user, String pass) {
username = user;
password = pass;
return getPasswordAuthentication();
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
}
public String getOneAddress(){
String email = null;
for(int i=0;i < this.addressArray.length;i++){
if(addressArray[i][1].equals("false")){
email = addressArray[i][0];
addressArray[i][1] = "true";
if(isEmail(email)){
return email;
}
}
}
return email;
}
// public void sendMailThreads(int tnum){
// try {
// Thread[] sendThreadArray = new Thread[tnum];
// for(int i = 0;i<tnum;i++){
// sendThreadArray[i] = new Thread(this.sendEmail());
// }
// for(int i = 0;i<tnum;i++){
// sendThreadArray[i].start();
// }
// } catch (MessagingException e) {
// e.printStackTrace();
// }
// }
public boolean isEmail(String str){
str = str.trim();
String regex = "\\w+(\\.\\w+)*@\\w+(\\.\\w+)+";
return str.matches(regex);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -