1.郵件發送類?: 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?泰華網絡?滬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;
 /**?*//**?*//**?*//**
?*?發送Email類
?*/

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

????????//調用驗證類進行驗證,需要參數發件人用戶名和密碼
????????logger.info("驗證類實例化==============");
????????CheckSendEmail?auth=new?CheckSendEmail("lip009","lip009");

????????logger.info("驗證通過");
????????//創建session對象
????????Session?sendMailSession;
????????sendMailSession?=?Session.getInstance(props,?auth);
????????//設置輸出調試信息
????????sendMailSession.setDebug(true);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

????????//發送
????????result=true;
????????transport.send(newMessage);//此處總是拋出異常,讓人很是郁悶,但是郵件卻發送成功!
????????logger.info("恭喜你!您的郵件已經成功發送!");
??????}
 ??????catch?(MessagingException?ex)? {
//????????ex.printStackTrace();
??????}
??????return?result;
??}
}2.郵件帳號密碼驗證類: 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?泰華網絡?滬ICP備06××××××號
?*?All?right?reserved.
?*/

import?javax.mail.*;

 /**?*//**?*//**?*//**
?*?Email發送帳號密碼驗證類
?*/

 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操作的總結(1) 2004-08-15 gztoby加入身份驗證信息的SMTP mail發送 2005-04-06 sykpboy郵件發送程序(可以同時發給多個地址、可以帶附件) 2004-11-09 naipengzhao用JavaMail寫簡易電子郵件發送系統[轉載] 2004-07-29 lwqJ在JSP中使用JavaMail(下) 2004-07-01 arielxp
|