1.郵件發(fā)送類?: package?com.taihuatalk.taihua.common.common;
 /**?*//**?*//**?*//**
?*?Author:李鵬
?*?CreateDate:2006-06-25?22:47:00
?*?Modifier:李鵬
?*?ModifyDate:2006-06-25?22:47:00
?*?Version:1.0
?*?Copyright(c)2006?泰華網(wǎng)絡(luò)?滬ICP備06××××××號
?*?All?right?reserved.
?*/

import?javax.mail.Transport;
import?javax.mail.internet.InternetAddress;
import?java.util.Date;
import?javax.mail.Message.RecipientType;
import?javax.mail.internet.MimeMessage;
import?javax.mail.Message;
import?javax.mail.Session;
import?java.util.Properties;
import?javax.mail.MessagingException;
import?javax.mail.internet.MimeBodyPart;
import?javax.mail.Multipart;
import?javax.mail.internet.MimeMultipart;
import?org.apache.log4j.Logger;
 /**?*//**?*//**?*//**
?*?發(fā)送Email類
?*/

 public?class?SendEmail? {
??Logger?logger=Logger.getLogger(this.getClass());
 ??/**?*//**?*//**?*//**
???*?Email發(fā)送方法
???*?@param?toemails?需要一個(gè)字符串參數(shù),用來設(shè)置收件人地址,如果收件人為多個(gè),則用","隔開
???*?@param?content?郵件內(nèi)容
???*?@param?subject?郵件主題
???*?@return?郵件成功發(fā)送則返回true,否則返回false
???*/
 ??public?boolean?sendSimpleEmail(String?toemails,String?content,String?subject) {
????boolean?result=false;
????logger.info("進(jìn)入發(fā)送Email類");
 ??????try? {
????????//創(chuàng)建屬性對象
????????Properties?props?=?new?Properties();
????????//設(shè)置郵件傳輸協(xié)議為:smtp
????????props.put("mail.transpost.protocol","smtp");
????????//設(shè)置郵件服務(wù)器地址
????????props.put("mail.smtp.host",?"smtp.163.com");
????????//設(shè)置郵件驗(yàn)證為真
????????props.put("mail.smtp.auth",?"true");
????????//設(shè)置郵件服務(wù)器端口
????????props.put("mail.smtp.port","25");

????????//調(diào)用驗(yàn)證類進(jìn)行驗(yàn)證,需要參數(shù)發(fā)件人用戶名和密碼
????????logger.info("驗(yàn)證類實(shí)例化==============");
????????CheckSendEmail?auth=new?CheckSendEmail("lip009","lip009");

????????logger.info("驗(yàn)證通過");
????????//創(chuàng)建session對象
????????Session?sendMailSession;
????????sendMailSession?=?Session.getInstance(props,?auth);
????????//設(shè)置輸出調(diào)試信息
????????sendMailSession.setDebug(true);

????????logger.info("開始創(chuàng)建消息對象");
????????//創(chuàng)建信息對象
????????Message?newMessage?=?new?MimeMessage(sendMailSession);

????????//輸入發(fā)送信息
????????//設(shè)置發(fā)信人地址
????????logger.info("設(shè)置發(fā)信人地址");
????????newMessage.setFrom(new?InternetAddress("link2friend@163.com"));

????????//設(shè)置收信人地址,只支持單用戶發(fā)送
//????????newMessage.setRecipient(Message.RecipientType.TO,new?InternetAddress("lip0091981@163.com"));

????????//設(shè)置收信人地址,可以支持多用戶發(fā)送
????????logger.info("設(shè)置收信人地址");
????????newMessage.setRecipients(Message.RecipientType.TO,
????????????????????????????????InternetAddress.parse(toemails));
???????//附件
//==============================================================================
???????//msgText是信件的正文,共有兩行
//???????String?msgText?=?content;

???????//msgAttachment是一段字符串作為附件內(nèi)容
//???????String?msgAttachment?=?"This?is?an?attachment?string!";

//???????MimeBodyPart?mbp1?=?new?MimeBodyPart();

//???????mbp1.setText(msgText);?//把前面定義的msgText中的文字設(shè)定為郵件正文的內(nèi)容

???????//創(chuàng)建附件部分
//???????MimeBodyPart?mbp2?=?new?MimeBodyPart();

???????//使用setText(text,?charset)來加入附件
//???????mbp2.setText(msgAttachment,?"gb2312");

???????//創(chuàng)建Multipart
//???????Multipart?mp?=?new?MimeMultipart();

//???????mp.addBodyPart(mbp1);
//???????mp.addBodyPart(mbp2);

???????//?添加?Multipart到Message中
//???????newMessage.setContent(mp);
//==============================================================================
????????//設(shè)置信件文本格式(當(dāng)設(shè)置了附件,這里就不能有)
????????logger.info("設(shè)置格式");
????????newMessage.setContent("SendMail",?"text/html");

????????//設(shè)置信件主題
????????logger.info("設(shè)置主題");
????????newMessage.setSubject(subject);

????????//設(shè)置信件發(fā)送日期
????????logger.info("設(shè)置發(fā)送日期");
????????newMessage.setSentDate(new?Date());

????????//設(shè)置信件正文(當(dāng)設(shè)置了附件,這里就不能有)
????????newMessage.setText(content);
????????logger.info("設(shè)置完消息");
????????//創(chuàng)建對象
????????Transport?transport;
????????transport?=?sendMailSession.getTransport("smtp");
????????logger.info("將要發(fā)送");

????????//發(fā)送
????????result=true;
????????transport.send(newMessage);//此處總是拋出異常,讓人很是郁悶,但是郵件卻發(fā)送成功!
????????logger.info("恭喜你!您的郵件已經(jīng)成功發(fā)送!");
??????}
 ??????catch?(MessagingException?ex)? {
//????????ex.printStackTrace();
??????}
??????return?result;
??}
}2.郵件帳號密碼驗(yàn)證類: package?com.taihuatalk.taihua.common.common;
 /**?*//**?*//**?*//**
?*?Author:李鵬
?*?CreateDate:2006-06-25?22:47:00
?*?Modifier:李鵬
?*?ModifyDate:2006-06-25?22:47:00
?*?Version:1.0
?*?Copyright(c)2006?泰華網(wǎng)絡(luò)?滬ICP備06××××××號
?*?All?right?reserved.
?*/

import?javax.mail.*;

 /**?*//**?*//**?*//**
?*?Email發(fā)送帳號密碼驗(yàn)證類
?*/

 public?class?CheckSendEmail?extends?Authenticator {
??private?String?m_username?=?null;
??private?String?m_userpass?=?null;
??public?void?setUsername(String?username)
 ?? {
??????m_username?=?username;
??}
??public?void?setUserpass(String?userpass)
 ?? {
??????m_userpass?=?userpass;
??}
??public?CheckSendEmail(String?username,?String?userpass)
 ?? {
??????super();
??????setUsername(username);
??????setUserpass(userpass);
??}
??public?PasswordAuthentication?getPasswordAuthentication()
 ?? {
??????return?new?PasswordAuthentication(m_username,m_userpass);
??}
} JavaMail操作的總結(jié)(1) 2004-08-15 gztoby加入身份驗(yàn)證信息的SMTP mail發(fā)送 2005-04-06 sykpboy郵件發(fā)送程序(可以同時(shí)發(fā)給多個(gè)地址、可以帶附件) 2004-11-09 naipengzhao用JavaMail寫簡易電子郵件發(fā)送系統(tǒng)[轉(zhuǎn)載] 2004-07-29 lwqJ在JSP中使用JavaMail(下) 2004-07-01 arielxp
|