當前位置:編程學習大全網 - 源碼下載 - java 發送郵件 需要哪些jar包

java 發送郵件 需要哪些jar包

使用JavaMail發送郵件需要用到mail.jar和activtion.jar兩個包。

該類實現了較完整的郵件發送功能,包括以HTML格式發送,添加附件和抄送人。下面是具體的代碼:

package?cn.cgw.util.mail;?

import?java.util.Properties;?

import?javax.activation.DataHandler;?

import?javax.activation.FileDataSource;?

import?javax.mail.Address;?

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?Mail?{

private?MimeMessage?mimeMsg;?//MIME郵件對象

private?Session?session;?//郵件會話對象

private?Properties?props;?//系統屬性

private?boolean?needAuth?=?false;?//smtp是否需要認證

//smtp認證用戶名和密碼

private?String?username;

private?String?password;

private?Multipart?mp;?//Multipart對象,郵件內容,標題,附件等內容均添加到其中後再生成MimeMessage對象

/**?

*?Constructor?

*?@param?smtp?郵件發送服務器?

*/?

public?Mail(String?smtp){

setSmtpHost(smtp);

createMimeMessage();

}

/**?

*?設置郵件發送服務器?

*?@param?hostName?String?

*/?

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主機

}

/**?

*?創建MIME郵件對象

*?@return?

*/?

public?boolean?createMimeMessage()

{

try?{

System.out.println("準備獲取郵件會話對象!");

session?=?Session.getDefaultInstance(props,null);?//獲得郵件會話對象

}

catch(Exception?e){

System.err.println("獲取郵件會話對象時發生錯誤!"+e);

return?false;

}

System.out.println("準備創建MIME郵件對象!");

try?{

mimeMsg?=?new?MimeMessage(session);?//創建MIME郵件對象

mp?=?new?MimeMultipart();

return?true;

}?catch(Exception?e){

System.err.println("創建MIME郵件對象失敗!"+e);

return?false;

}

}?

/**?

*?設置SMTP是否需要驗證?

*?@param?need?

*/?

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");

}

}

/**?

*?設置用戶名和密碼?

*?@param?name?

*?@param?pass?

*/?

public?void?setNamePass(String?name,String?pass)?{

username?=?name;

password?=?pass;

}

/**?

*?設置郵件主題?

*?@param?mailSubject?

*?@return?

*/?

public?boolean?setSubject(String?mailSubject)?{

System.out.println("設置郵件主題!");

try{

mimeMsg.setSubject(mailSubject);

return?true;

}

catch(Exception?e)?{

System.err.println("設置郵件主題發生錯誤!");

return?false;

}

}?

/**?

*?設置郵件正文?

*?@param?mailBody?String?

*/

public?boolean?setBody(String?mailBody)?{

try{

BodyPart?bp?=?new?MimeBodyPart();

bp.setContent(""+mailBody,"text/html;charset=GBK");

mp.addBodyPart(bp);

return?true;

}?catch(Exception?e){

System.err.println("設置郵件正文時發生錯誤!"+e);

return?false;

}

}

/**?

*?添加附件?

*?@param?filename?String?

*/

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;

}

}

/**?

*?設置發信人?

*?@param?from?String?

*/

public?boolean?setFrom(String?from)?{

System.out.println("設置發信人!");

try{

mimeMsg.setFrom(new?InternetAddress(from));?//設置發信人

return?true;

}?catch(Exception?e)?{

return?false;

}

}

/**?

*?設置收信人?

*?@param?to?String?

*/

public?boolean?setTo(String?to){

if(to?==?null)return?false;

try{

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

return?true;

}?catch(Exception?e)?{

return?false;

}?

}

/**?

*?設置抄送人?

*?@param?copyto?String

*/

public?boolean?setCopyTo(String?copyto)

{

if(copyto?==?null)return?false;

try{

mimeMsg.setRecipients(Message.RecipientType.CC,(Address[])InternetAddress.parse(copyto));

return?true;

}

catch(Exception?e)

{?return?false;?}

}

/**?

*?發送郵件?

*/

public?boolean?sendOut()

{

try{

mimeMsg.setContent(mp);

mimeMsg.saveChanges();

System.out.println("正在發送郵件....");

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));

transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.CC));

//transport.send(mimeMsg);

System.out.println("發送郵件成功!");

transport.close();

return?true;

}?catch(Exception?e)?{

System.err.println("郵件發送失敗!"+e);

return?false;

}

}

/**?

*?調用sendOut方法完成郵件發送?

*?@param?smtp?

*?@param?from?

*?@param?to?

*?@param?subject?

*?@param?content?

*?@param?username?

*?@param?password?

*?@return?boolean?

*/?

public?static?boolean?send(String?smtp,String?from,String?to,String?subject,String?content,String?username,String?password)?{?

Mail?theMail?=?new?Mail(smtp);?

theMail.setNeedAuth(true);?//需要驗證?

if(!theMail.setSubject(subject))?return?false;?

if(!theMail.setBody(content))?return?false;?

if(!theMail.setTo(to))?return?false;?

if(!theMail.setFrom(from))?return?false;?

theMail.setNamePass(username,password);?

if(!theMail.sendOut())?return?false;?

return?true;?

}?

/**?

*?調用sendOut方法完成郵件發送,帶抄送?

*?@param?smtp?

*?@param?from?

*?@param?to?

*?@param?copyto?

*?@param?subject?

*?@param?content?

*?@param?username?

*?@param?password?

*?@return?boolean?

*/?

public?static?boolean?sendAndCc(String?smtp,String?from,String?to,String?copyto,String?subject,String?content,String?username,String?password)?{?

Mail?theMail?=?new?Mail(smtp);?

theMail.setNeedAuth(true);?//需要驗證?

if(!theMail.setSubject(subject))?return?false;?

if(!theMail.setBody(content))?return?false;?

if(!theMail.setTo(to))?return?false;?

if(!theMail.setCopyTo(copyto))?return?false;?

if(!theMail.setFrom(from))?return?false;?

theMail.setNamePass(username,password);?

if(!theMail.sendOut())?return?false;?

return?true;?

}?

/**?

*?調用sendOut方法完成郵件發送,帶附件?

*?@param?smtp?

*?@param?from?

*?@param?to?

*?@param?subject?

*?@param?content?

*?@param?username?

*?@param?password?

*?@param?filename?附件路徑?

*?@return?

*/?

public?static?boolean?send(String?smtp,String?from,String?to,String?subject,String?content,String?username,String?password,String?filename)?{?

Mail?theMail?=?new?Mail(smtp);?

theMail.setNeedAuth(true);?//需要驗證?

if(!theMail.setSubject(subject))?return?false;?

if(!theMail.setBody(content))?return?false;?

if(!theMail.addFileAffix(filename))?return?false;

if(!theMail.setTo(to))?return?false;?

if(!theMail.setFrom(from))?return?false;?

theMail.setNamePass(username,password);?

if(!theMail.sendOut())?return?false;?

return?true;?

}?

/**?

*?調用sendOut方法完成郵件發送,帶附件和抄送?

*?@param?smtp?

*?@param?from?

*?@param?to?

*?@param?copyto?

*?@param?subject?

*?@param?content?

*?@param?username?

*?@param?password?

*?@param?filename?

*?@return?

*/?

public?static?boolean?sendAndCc(String?smtp,String?from,String?to,String?copyto,String?subject,String?content,String?username,String?password,String?filename)?{?

Mail?theMail?=?new?Mail(smtp);?

theMail.setNeedAuth(true);?//需要驗證?

if(!theMail.setSubject(subject))?return?false;?

if(!theMail.setBody(content))?return?false;?

if(!theMail.addFileAffix(filename))?return?false;

if(!theMail.setTo(to))?return?false;?

if(!theMail.setCopyTo(copyto))?return?false;?

if(!theMail.setFrom(from))?return?false;?

theMail.setNamePass(username,password);?

if(!theMail.sendOut())?return?false;?

return?true;?

}?

}

  • 上一篇:魔獸世界釣魚怎麽釣我是小白
  • 下一篇:什麽是linux kernel?有什麽作用
  • copyright 2024編程學習大全網