commons-email是Apache提供的郵件相關的工具包,簡化了JAVA郵件功能的實現。這里舉個簡單的例子給大家介紹下。
先完成代碼編寫,如下:
package com.emailtest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
public class EmailUtil {
Log log = LogFactory.getLog("Send E-mail");
public static String charsetname = "ISO8859_1";//字符集,用于中文處理
public static String fromeaddr = "simplelife@126.com";//發件人郵箱地址
public static String username = "simplelife";//發件人郵箱用戶名
public static String password = "xxxxxx";//發件人郵箱密碼
public static String sendname = "hilor";//發件人名稱
public static String emailServer = "smtp.126.com";//郵件服務器
/**
*
* @param emailaddr 收件人郵箱地址
* @param ename 收件人姓名
* @param subject 郵件主題
* @param mailcontent 郵件內容
* @return 郵件發送是否成功
*
*/
public boolean sendMail(String emailaddr,String ename,String subject,String mailcontent) throws Exception {
SimpleEmail email = new SimpleEmail();
//設置發件人用戶名、密碼認證
email.setAuthentication(EmailUtil.username,EmailUtil.password);
//設置發送郵件所使用的郵件服務器
email.setHostName(EmailUtil.emailServer);
try{
//添加收件人信息
email.addTo(emailaddr, ename);
//添加發件人信息
email.setFrom(EmailUtil.fromeaddr, EmailUtil.sendname);
//添加郵件主題
email.setSubject(subject);
//添加郵件內容
email.setMsg(mailcontent);
//發送郵件
email.send();
//記錄日志
log.info("Send Mail Successfully!");
return true;
}catch(EmailException e){
log.error(e.getMessage());
return false;
}
}
/**
*
* 測試主程序
*/
public static void main(String[] args) {
EmailUtil email = new EmailUtil();
try{
email.sendMail("xxx@xxxxx.com","xxx","測試郵件",new String("發送測試郵件!\n發送測試郵件!\n發送測試郵件!\n發送測試郵件!".getBytes(),EmailUtil.charsetname));
}catch(Exception e){
e.printStackTrace();
}
}
}
這個EmailUtil類只實現了一個用來發送郵件的方法,還有一個是靜態的main()測試主程序。在這個例子中只用到commons-email包里的SimpleEmail類。利用commons-email實現郵件功能,在類路徑中不但要包含commons-email提供的jar包,還必須包含sun的javamail提供的兩個與郵件相關的jar包(activation.jar,mail.jar)。
程序中日志記錄是利用commons-logging和log4j結合來實現的,需要加入兩個jar包(log4j-1.2.11.jar,commons-logging-1.0.4.jar)。然后添加log4j.properties配置文件,文件內容如下:
log4j.rootLogger=info, dest1
log4j.appender.dest1=org.apache.log4j.ConsoleAppender
log4j.appender.dest1.layout=org.apache.log4j.PatternLayout
log4j.appender.dest1.layout.ConversionPattern=%d %-5p %-5c{3} %x -> %m%n
log4j配置文件細節請參考log4j參考手冊,在這里不做太多解釋。
如果只是想做測試,也可以把程序中相關部分用System.out.print()替換掉,無須加入日志相關的jar包和log4j配置文件。