关于使用commons-email包测试发送邮件遇到的问题
来源:互联网 发布:法象莫大乎天地 编辑:程序博客网 时间:2024/05/28 05:13
项目中有个需求是这样的:客户办理某一项业务,当用户成功提交业务办理信息后,系统生成一个业务随机码给用户,以此作为以后的业务办理结果查询依据。鉴于随机码较长,方便用户记录,在生成随机码的同时,提供用户发送随机码到用户指定邮箱的功能。所以这里有了发送邮件的需求。
java中邮件发送的jar包也不少,度娘了下,发现好多人使用commons-mail.jar来发送邮件,看代码觉得设置比较简洁,所以拿来试了一把。
整体来说,使用过程真的比较简洁,但是也出现了几个问题。现把问题记录在案,以便后续参考。
commons-mail使用的版本是commons-mail-1.3.1,以下是测试发送邮件的代码,
/**
* 发送邮件
* @param reciever 收信人地址
* @param subject 邮件标题
* @param content 邮件内容
* @return 1 发送邮件成功 0 发送邮件失败
*/
public static int sendMail(String reciever, String subject, String content) {
try {
SimpleEmail email = new SimpleEmail();
email.setAuthentication(MAIL_USERNAME, MAIL_PASSWORD);
email.setHostName(MAIL_HOSTNAME);
email.setFrom(MAIL_SENDER);
email.addTo(reciever);
email.setSubject(subject);
email.setContent(content, "text/plain;charset=utf-8");
email.send();
return 1;
} catch (EmailException e) {
System.out.println(e.getMessage());
return 0;
}
}
我的工程是一个新建的java web工程, 引入了j2ee5的类库,然后第三方类库就是commons-mail-1-3-1.jar了。
错误信息1:这时候调用上面的邮件发送方法时,邮件发送失败,抛出的异常信息为:“Sending the email to the following server failed : smtp.163.com:25”,依旧度娘了下,告诉我说,缺少了mail.jar和activation.jar两个包。
错误信息2: 项目中添加了这两个jar包之后,怀着忐忑的心情,继续调用上述方法发送邮件,果然...,控制台直接报出了红色的信息,“Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream”,定神看了看,原来是有class未找到。这问题比较常见,度娘说,这个太小儿科了,好多人都问过这个问题了,刚刚引入的两个jar包在j2ee5类库里已经有了,但是实现有些差异,因此报出了刚刚的错误,言之有理,果断remove掉了j2ee5的类库,再次运行程序,发现邮件发送出去了,搞定。
附:其实如果j2ee类库选择j2ee6,mail.jar和activation.jar两个jar包,可以不再引入,依然能发送邮件。那么由此推测我添加的mail.jar和activation.jar两个jar包已经在j2ee6中有版本一致的一份,因此我最终的项目使用j2ee6。
- 关于使用commons-email包测试发送邮件遇到的问题
- commons-email实现发送邮件及遇到的问题
- 使用commons email发送邮件
- 使用commons-email-1.3.2.jar包发送邮件
- 使用commons-email-1.3.2.jar包发送邮件
- 使用commoms-email发送邮件功能遇到的问题
- 通过apache 的 commons-email 包发送邮件
- 采用apache的commons-email包发送邮件死锁
- 使用commons-email(1.3.3)发送邮件的简单示例
- apache commons-email发送邮件乱码问题
- commons-email 发送邮件
- 使用Apache Commons-email组件发送邮件
- 使用Apache Commons-email组件发送邮件
- java写email邮件发送的时候遇到的问题
- java实现发送邮件可多个附件内嵌图片-commons-email使用(未测试)
- 通过commons-email发送邮件
- Apache-commons-email发送邮件
- Apache Commons Email邮件发送
- ubuntu12.04LTS增加root用户图形登录
- 极大极小值算法
- ACE-6.1.0 linux 下的编译与安装步骤
- 机器学习资料推荐
- ubuntu 安装和配置jdk
- 关于使用commons-email包测试发送邮件遇到的问题
- POJ 1521 熵 定长编码和变长编码的比较(huffman)
- 游戏服务器后台的快速开发三
- 汉洛塔递归实现的思考(C语言)
- 契约式编程
- u-boot移植前准备工作篇
- Field Doesn't Have a Default Value
- Ext3 学习(5) -- Chart column
- 华为2011上机笔试题2+参考程序