我要啦免费统计

微蓝领域

我的学习档案馆
posts - 19, comments - 57, trackbacks - 0, articles - 57
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

利用commons-email实现邮件发送

Posted on 2007-08-23 11:31 hilor 阅读(603) 评论(0)  编辑  收藏 所属分类: J2EE

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配置文件。


只有注册用户登录后才能发表评论。


网站导航: