天天看点

javamail群发实现

瀛??javamail涓? 锛???????浜鸿?????浜?涓?缇ゅ??email??渚?瀛?

?娉ㄦ??锛?1. ??浠跺?板????浠ユ??涓ょ?褰㈠? eg: "user<[email protected]>" or "[email protected]"

2. 瑕?缇ゅ??????浠跺?板????杩??ヨ捣?ョ??涓?涓?瀛?绗?覆 "user1<[email protected]>,user2<[email protected]>,..."

3. ??????????浜哄?????╃??锛?娆㈣?澶у?舵?璇?

*/

import java.util.Properties;

import javax.activation.DataHandler;

import javax.activation.FileDataSource;

import javax.mail.BodyPart;

import javax.mail.Message;

import javax.mail.Multipart;

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;

public class SendGroup2 {

private String to ; //????瀵硅薄 娉ㄦ??浜?椤?

private String username ; // smtp璁よ???ㄦ?峰????瀵???

private String password ;

private String mailbody ;

private String mailSubject ;

private String attach ;//??浠剁??缁?瀵硅矾寰? eg: "d://1ogo.gif"

private String from ;

private String host ;

private MimeMessage mimeMsg; // MIME??浠跺?硅薄

private Session session; // ??浠朵?璇?瀵硅薄

private Properties props; // 绯荤?灞???

// private boolean needAuth = false; // smtp??????瑕?璁よ??

private Multipart mp; // Multipart瀵硅薄,??浠跺??瀹???棰?,??浠剁????瀹瑰??娣诲???板?朵腑????????//MimeMessage瀵硅薄

private String getIndexOfString(String str) { //?峰??host??绉? String result = "";

int atIndex = str.indexOf("@");

int dotIndex = str.indexOf(".");

result = str.substring(atIndex + 1, dotIndex);

return result;

}

public void setSmtpHost(String hostName) {

System.out.println("璁剧疆绯荤?灞??э?mail.smtp.host = " + hostName);

if (props == null)

props = System.getProperties(); // ?峰?绯荤?灞??у?硅薄

props.put("mail.smtp.host", hostName); // 璁剧疆SMTP涓绘?? }

public boolean createMimeMessage() {

try {

System.out.println("??澶??峰????浠朵?璇?瀵硅薄锛?");

session = Session.getDefaultInstance(props, null); // ?峰???浠朵?璇?瀵硅薄

} catch (Exception e) {

System.err.println("?峰????浠朵?璇?瀵硅薄?跺??????璇?锛?" + e);

return false;

}

System.out.println("??澶???寤?IME??浠跺?硅薄锛?");

try {

mimeMsg = new MimeMessage(session); // ??寤?IME??浠跺?硅薄

mp = new MimeMultipart(); // mp 涓?涓?multipart瀵硅薄

// Multipart is a container that holds multiple body parts.

return true;

} catch (Exception e) {

System.err.println("??寤?IME??浠跺?硅薄澶辫触锛?" + e);

return false;

}

}

public void setNamePass(String name, String pass) {

System.out.println("绋?搴?寰??扮?ㄦ?峰??涓?瀵???");

username = name;

password = pass;

}

public boolean setSubject(String mailSubject) {

System.out.println("璁剧疆??浠朵富棰?锛?");

try {

mimeMsg.setSubject(mailSubject);

return true;

} catch (Exception e) {

System.err.println("璁剧疆??浠朵富棰???????璇?锛?");

return false;

}

}

public boolean setBody(String mailBody) {

try {

System.out.println("璁剧疆??浠朵??煎?");

BodyPart bp = new MimeBodyPart();

bp.setContent(

"<meta http-equiv=Content-Type content=text/html; charset=gb2312>"

+ mailBody, "text/html;charset=GB2312");

mp.addBodyPart(bp);

return true;

} catch (Exception e) {

System.err.println("璁剧疆??浠舵?f???跺??????璇?锛?" + e);

return false;

}

}

public boolean addFileAffix(String filename) {

System.out.println("澧?????浠堕??浠讹?" + filename);

try {

BodyPart bp = new MimeBodyPart();

FileDataSource fileds = new FileDataSource(filename);

bp.setDataHandler(new DataHandler(fileds));

bp.setFileName(fileds.getName());

mp.addBodyPart(bp);

return true;

} catch (Exception e) {

System.err.println("澧?????浠堕??浠讹?" + filename + "??????璇?锛?" + e);

return false;

}

}

public boolean setFromAddress(String from) {

System.out.println("璁剧疆??淇′汉锛?");

try {

mimeMsg.setFrom(new InternetAddress(from)); // 璁剧疆??淇′汉

return true;

} catch (Exception e) {

System.err.println("璁剧疆??淇′汉锛?" + from + "??????璇?锛?" + e);

return false;

}

}

public boolean setTo(String to) {

System.out.println("璁剧疆?朵俊浜?);

if (to == null)

return false;

try {

mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));

return true;

} catch (Exception e) {

return false;

}

}

public boolean sendout() {

try {

mimeMsg.setContent(mp);

mimeMsg.saveChanges();

System.out.println("姝e?ㄥ??????浠?...");

Session mailSession = Session.getInstance(props, null);

Transport transport = mailSession.getTransport("smtp");

transport.connect((String) props.get("mail.smtp.host"), username,

password);

transport.sendMessage(mimeMsg, mimeMsg

.getRecipients(Message.RecipientType.TO));

System.out.println("??????浠舵????锛?");

transport.close();

return true;

} catch (Exception e) {

System.err.println("??浠跺????澶辫触锛?" + e);

return false;

}

}

public void setNeedAuth(boolean need) {

System.out.println("璁剧疆smtp韬?浠借?よ??锛?mail.smtp.auth = " + need);

if (props == null)

props = System.getProperties();

if (need) {

props.put("mail.smtp.auth", "true");

} else {

props.put("mail.smtp.auth", "false");

}

}

public void setMail(String mailSubject,String mailbody,String to,String attach)

{

this.mailSubject = mailSubject;

this.mailbody = mailbody;

this.to = to;

this.attach = attach;

}

public SendGroup2()

{ }

public SendGroup2 (String from ,String username,String password,String to,String mailSubject,String mailbody,String attach)

{

this.from = from;

host = "smtp." + this.getIndexOfString(from) + ".com";

setSmtpHost(host);

setNamePass(username,password); // ?ㄦ?峰??涓?瀵???

setMail(mailSubject,mailbody,to,attach);

this.sendAll();

}

public void sendAll() {

createMimeMessage();

this.setNeedAuth(true);

if (setSubject(mailSubject) == false)

return;

if (setBody(mailbody) == false)

return;// ?朵欢浜洪??绠? if (setTo(to) == false)

return;

// ??浠朵汉??绠? if (setFromAddress(from) == false)

return;

// 璁剧疆??浠? if (!"".equals(attach)) {

if (addFileAffix(attach) == false)

return;

}

if (sendout() == false)

return;

}

public static void main(String[] args) {

SendGroup2 send = new SendGroup2("[email protected]","email","password","to","this is last test","software","d://logo.gif");

}

}

?