- 浏览: 294531 次
- 性别:
- 来自: 兰州
-
文章分类
- 全部博客 (116)
- 给网友答疑 (1)
- J2EE (16)
- DesignPattern (14)
- OtherArchive (5)
- lucene and compass (1)
- JasperReport (2)
- FusionCharts (2)
- Classical algorithm (2)
- JS (5)
- ZK Ajax (1)
- ubuntu-linux (4)
- Weka (0)
- IDE Config (6)
- JAVA 底层 (3)
- C\C++ (4)
- Android (15)
- 项目展示 (1)
- 娱乐生活 (16)
- 电驴资源 (1)
- 网络转载 (1)
- 程序员 毛病 (1)
- Android,开发日志 (2)
- java (1)
- openGL es (2)
- MAC (1)
最新评论
-
洋葱pp奥特曼:
求大神再发一次资源,万分感激!!小弟邮箱:173992660@ ...
使用JQuery-Week-Calendar做日程 -
xbliu564:
请问版本号
fusionchart 破解文件SWF -
xue_lang:
看了半天,有点坑爹的赶脚,哎
状态模式(State) -
teacup_madman:
我只能说。这个程序可以去掉的地方太多了。这个真的是State模 ...
状态模式(State) -
冬日的阳光:
TrafficLight这个类的change方法可以改一下,如 ...
状态模式(State)
今天折腾了一天,有个业务需要写个简单的邮件发送,但是测试了。从Apache Commons Email 上取得的例子,稍作了修改:
public class SendMail { public static void main(String[] args) throws Exception { HtmlEmail email = new HtmlEmail(); email.setCharset("UTF-8"); email.setHostName("smtp.163.com"); email.addTo("bestupon@foxmail.com", "BestUpon"); email.setFrom("guzhuyunfan@163.com", "蒋绪升"); email.setSubject("这是一个主题"); email.setAuthentication("username", "password"); email.setMsg("这是一个消息..........."); URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif"); String cid = email.embed(url, "Apache logo"); email.setHtmlMsg("<html>测试十四和<img src=\"cid:" + cid + "\"></html>"); email.setTextMsg("Your email client does not support HTML messages 这是一个TEXTMEG"); email.send(); System.out.println("发送成功!"); } }
这个测试例子,但是使用以上的代码发送邮件,应该的到,也得到了如下的结果:
但是当我将其放置到Web工程中的时候:
package com.jxs.sys.core.global.mail.service.impl; import java.net.MalformedURLException; import java.net.URL; import org.apache.commons.lang.StringUtils; import org.apache.commons.mail.Email; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.HtmlEmail; import org.springframework.stereotype.Service; import com.jxs.sys.core.base.manager.ManagerSupport; import com.jxs.sys.core.global.config.utils.PropertyHolder; import com.jxs.sys.core.global.mail.dao.MailDao; import com.jxs.sys.core.global.mail.model.Mail; import com.jxs.sys.core.global.mail.service.MailManager; @Service("sendMailManager") public class MailManagerImpl extends ManagerSupport<Mail, MailDao> implements MailManager { public void sendMail(Mail mailMessage) { try { /*Email msg = null; msg = buildMessage(mailMessage); String msgto = mailMessage.getTo(); if (StringUtils.isNotEmpty(msgto)) { String msgtos[] = msgto.split(";"); for (String msto : msgtos) { String to[] = msto.split(","); if (to.length == 2) { msg.addTo(to[1], to[0]); msg.send(); } } }*/ HtmlEmail email = new HtmlEmail(); email.setCharset("UTF-8"); email.setHostName("smtp.163.com"); email.addTo("bestupon@foxmail.com", "BestUpon"); email.setFrom("guzhuyunfan@163.com", "蒋绪升"); email.setSubject("这是一个测试主题"); email.setAuthentication("username", "password"); email.setMsg("这是一个消息..........."); URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif"); String cid = email.embed(url, "Apache logo"); email.setHtmlMsg("<html>测试十测试内容四和<img src=\"cid:" + cid + "\"></html>"); email.setTextMsg("Your email client does not support HTML messages 这是一个TEXTMEG"); email.send(); System.out.println("发送成功!"); } catch (EmailException e) { this.log.info("消息发送失败! 原因: " + e.getMessage()); } catch (MalformedURLException e) { this.log.info("消息发送失败! 原因: " + e.getMessage()); } } private Email buildMessage(Mail mailMessage) throws EmailException, MalformedURLException { HtmlEmail email = new HtmlEmail(); email.setCharset("UTF-8"); email.setHostName(PropertyHolder.getProperty("mail.host"));// 主机 String from[] = mailMessage.getFrom().split(","); email.setFrom(from[1], from[0]); email.setSubject(mailMessage.getSubject()); email.setAuthentication(PropertyHolder.getProperty("mail.username"), PropertyHolder.getProperty("mail.password")); email.setHtmlMsg("<html>" + mailMessage.getContent() + "</html>"); return email; } }
利用Action调用的时候,会出现如下的结果:
------=_Part_0_12512205.1282227745012 Content-Type: multipart/related; boundary="----=_Part_1_7008653.1282227745012" ------=_Part_1_7008653.1282227745012 Content-Type: multipart/alternative; boundary="----=_Part_2_18379432.1282227745012" ------=_Part_2_18379432.1282227745012 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Your email client does not support HTML messages =E8=BF=99=E6=98=AF=E4=B8=80= =E4=B8=AATEXTMEG ------=_Part_2_18379432.1282227745012 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <html>=E6=B5=8B=E8=AF=95=E5=8D=81=E5=9B=9B=E5=92=8C<img src=3D"cid:hiuudkwrl= s"></html> ------=_Part_2_18379432.1282227745012--
这样的结果,测试后了好几次,还是没有解决问题。
1.前面按照是过滤器的思路解决,去掉了所有的过滤器,行不通。
2.想着是不是本工程的编码问题,写了一个编码过滤器,行不通,
3.后来就直接新建了一个工程,使用一个Servlet来发送邮件,结果是成功了。
4.将前面的工程代码全部拷贝到上面的工程中,有行不通了.
5.这样猜想问题是出现在了jar包上了,是不是JavaMail的包和Commons Email的包有冲突,去掉了JavaMail的包还是行不通,
6.顺着5的这个思路,将原来所有的jar包都拷贝到这个工程中,不加载其他的任何信息,清理了一遍所有的JAR包,将以下的包,能发送成功了。
问题出现在了geronimo-javamail_1.4_spec-1.3 和 javamail 有冲突,geronimo-javamail_1.4_spec-1.3这个是使用CXF的时候引进的无用包!结果很让人郁闷,花费了我一天的时间!,写下来,警戒切勿引用无用包!
评论
3 楼
qianlei007
2011-04-08
我和一 犯的一样的错。 帮我的忙了。。。
找了一天, 最终 被你解决了。。。
谢谢哟!
找了一天, 最终 被你解决了。。。
谢谢哟!
2 楼
BestUpon
2010-08-26
bitray 写道
我使用javamail发送邮件没遇到什么困难
但是利用javamail接收邮件,非常费事,总是出现不支持SSLV3的异常,能不能请教请教你
但是利用javamail接收邮件,非常费事,总是出现不支持SSLV3的异常,能不能请教请教你
我没有遇到过这个问题,我猜测,只是猜测:你使用的v3协议,在javaMail 1.4 jar 中还不支持!或者是其他邮件服务器发送的邮件协议是最新版本的,你这边采用的协议两个不兼容!
在这个地址:http://www.5dmail.net/html/2006-6-20/2006620160939.htm
和http://www.blogjava.net/zamber/archive/2006/08/30/66544.html 相关内容!希望对你有所帮助!
1 楼
bitray
2010-08-26
我使用javamail发送邮件没遇到什么困难
但是利用javamail接收邮件,非常费事,总是出现不支持SSLV3的异常,能不能请教请教你
但是利用javamail接收邮件,非常费事,总是出现不支持SSLV3的异常,能不能请教请教你
发表评论
-
Spring MVC 和 Struts2 比较
2011-02-28 16:55 20601.struts2框架是类级别的拦截,每次来了请求就创建一个A ... -
写点程序的那些糗事(2)
2010-12-16 14:29 1240昨天给商学院做的专家品审系统正式的运行了,来的全部是一些大领导 ... -
Spring3 mvc 国际化时的一点注意
2010-12-13 09:37 1779Spring3 MVC 中:如果使用国际化的形式,如 ... -
MySQLIntegrityConstraintViolationException 解决办法
2010-10-19 16:51 18913使用JPA做映射: /** * 指标 * ... -
写点程序的那些糗事(1)
2010-09-27 19:31 1311写点程序就要认真点,为什么呢?会有效率问题的!引例: ... -
编程语言结构图
2010-09-23 12:22 1236编程语言就是这么个样子的!还要讨论什么是“排名战”么? ... -
在线试听(播放器)防止盗链下载实现讨论_障眼法实现
2010-09-06 12:10 6321《读者》电子出版平台有个附属项目,需求描述是这样的: ... -
使用jcaptcha 仿论坛tip 生成异步验证码
2010-08-18 03:55 2133首先看看效果图: 如上图,点击验证码可以异步的刷新 ... -
Eclipse 3.6 插件资源-持续更新ing-更新15次--欢迎有好用插件的朋友推荐
2010-08-17 11:00 7811欢迎有好用插件的朋友推荐! 注:没有提示说明安装的,直 ... -
Jpa 时间段间的查询问题解决办法
2010-05-27 22:13 22691最近在做法院的一个档案管理项目,一直做的的查询是基于compa ... -
dhtmlXTree 与后台交互数据
2009-11-06 14:44 1919今天要写一个获得dhtmlXTree 节点值的,大量的Id节点 ... -
Struts2 OGNL中的投影(过滤)与软件工程
2009-11-05 11:54 1919Struts2 OGNL中的投影(过滤) <s: ... -
Struts2 doubleSelect
2009-10-30 14:17 1571今天要用到一个二级联动,以前都是使用JavaScript编写, ... -
Struts2 的三种接受参数的方式
2009-10-28 16:59 20601、通过普通参数的getter and setter方式 ... -
JDBC CRUD操作的粗略封装DEMO
2009-10-15 12:19 4636暮然回首,看看jDBC的操作,原来很多的东西都忘记了, ...
相关推荐
在实际开发中,推荐使用JavaMail API或者Apache Commons Email库,它们提供了更加稳定且易于使用的邮件发送接口,能够处理复杂的邮件格式和认证机制,同时提供了更好的异常处理和兼容性。然而,直接使用Socket连接...
【Java 发送邮件及邮件附件】 在Java编程中,发送邮件及附件是常见的功能,...然而,在实际开发中,通常推荐使用JavaMail API或者第三方库如Apache Commons Email,它们提供了更强大且易于使用的接口来处理邮件的发送。
Java发送邮件及邮件附件是...虽然这提供了一种自定义和控制邮件发送过程的方法,但在实际开发中,更常见的是使用JavaMail API或Apache Commons Email库,它们提供了更高级别的抽象和错误处理,使邮件发送变得更加便捷。
【Java 发送邮件及邮件附件】\n\n在Java编程...注意,由于直接使用Socket编程的方式较为复杂且易出错,实际开发中通常建议使用JavaMail API或第三方库如Apache Commons Email,它们提供了更强大和稳定的邮件发送功能。
Codec 是 Apache Commons 中的一个工具类,提供了各种编码方法的实现,如 DES、SHA1、MD5、Base64 等。通过使用 Codec,可以轻松地对数据进行加密和解密。 Collections Collections 是 Apache Commons 中的一个...
8. **Email**: 提供了发送电子邮件的功能,封装了JavaMail API,使得邮件发送变得更加简单。 9. **FileUpload**: 实现了HTTP文件上传功能,可以处理多部分的POST请求,便于在Web应用中接收用户上传的文件。 10. **...
8. Commons-codec.jar:这是一个 Common 项目中用来处理常用的编码方法的工具类包,例如 SHA1、MD5、Base64、URL Soundx 等。它不仅可以用来编码,也可以用于解码。 9. Commons-collections.jar:这是一个提供了 ...
- Apache Commons Codec包含多种编码和解码工具,如DES(数据加密标准)、SHA1、MD5散列算法,以及Base64编码等。这些工具常用于安全性和数据完整性相关的操作。 4. **Collections**: - Java核心库中的`java....