解决使用commons-email发送邮件时不能发送附件的问题

问题的发现及入坑过程

1, 上百度查询,找到例子在代码中测试

2,  因为其它发送功能已经写好了,所以只截取了附件部分代码,但是始终发送不成功

3,  解决办法完全按照网上的代码去试,就发送成功了,知道是有些代码和网上的不一样,所以导致的

问题的思考

1,  首先如果发现发送不了附件就按照网上的代码来试这个功能,就会很快发现问题,但是因为邮件内容是正常发送的,附件发送不了,就认为自己写的功能没问题,就掉坑里了,然后就产生了对一些常识问题的怀疑,并对其进行修改,结果肯定是徒劳的,常识是不会出错的,其实没有找到真正出错的地方

2,  这个问题比较特殊,个人感觉像是一个jar的bug,以后有空会看下原码,它就是邮件可以正常发送,但就是附件加不进来,然后也不报任何错,以后遇到这种问题,一定要找一个正确的来对比,正确的指的是可以发送邮件内容和附件的代码,找到后和自己的代码对比。

3,  对这种问题的解决看源码肯定是可以解决问题的,但是看源码时间消耗会很久,看个一两天也许不会有什么收获,很纠结啊

4,  换jar包这个问题应该在测试了正确的代码之后在考虑,何为正确代码,就是网上发布的,经过验证的,自己测试又可以得到正确结果的

5,  对解决java问题, 一定要保持能有多正常就有多正常的想法,不能用错误去验证错误,最后得到的肯定是错误

解决问题的办法

1,  看源码解决

2,  与正确的对比解决(即能有多正常就有多正常的解决办法)

我的问题

1,我看一眼自己的代码,然后看一眼网上搜到的,然后改一下自己的,一试不行,因为没改动地方啊,然后对网上的代码产生了怀疑,然后继续试,浪费了好多时间

最后说一下我的错:

我开始是这样写的,这种组合就只能发送内容,不能发送附件

email.setContent(“<div>邮件内容</div>”);//添加邮件内容

email.attach(attachment);//添加附件,attachment这个是附件的类

这样就是可以的,但这种不能发送带html格式的

email.setMsg(“邮件内容”);//添加邮件内容

email.attach(attachment);//添加附件

这样也是可以的,这种可以送带html格式的

email.addPart(“<div>邮件内容</div>”);//添加邮件内容

email.attach(attachment);//添加附件

猜你喜欢

转载自www.cnblogs.com/langxiansheng/p/12533845.html