关于使用HtmlEmail类发送邮件附件的一个坑

来源:互联网 发布:游戏存档软件 编辑:程序博客网 时间:2024/06/05 11:37

最近做了一个项目,属于二次开发,需要在原有的发送邮件的基础上发送邮件附件,因为之前的项目使用的是HtmlEmail类,因为为了使代码不做大的改动而影响其他功能,因此还是使用HtmlEmail这个类来发送附件。
利用HtmlEmail发送附件的代码百度一下一大堆,这里就不在复述了,按照百度来的方法进行改造后,附件能够成功发送了。但是问题来了。。。。
利用outlook邮箱来接收附件时,邮件的主体内容也被当成一个附件发送过来了,结果是邮件主体正文不见了,而附件多出来一个AT00001.htm的文件。
纠结了好久,最终找到方法去解决:
因为要发送的主体内容是Html格式的,网上的方法都是使用的是htmlEmail.setHtmlMsg();方法去设置邮件主体,最开始我也使用的是这个方法,但是出现了以上的问题。
因为没有测试其他邮箱,所以不知道这个现象是不是普通现象,最终的解决方案是使用htmlEmail.addPart()方法去设置邮件主体,而附件仍然用htmlEmail.attach()去设置。这样邮件主体内容就可以正常显示了。
其中htmlEmail.setHtmlMsg();方法是HtmlEmail本身的方法,作用是设置一个HTML类型的主体(Set the HTML content.)
而htmlEmail.addPart()方法则是HtmlEmail类继承自它的父类org.apache.commons.mail.MultiPartEmail的方法,作用是增加一个新的主体(Add a new part to the email)。
当使用HtmlEmail出现问题时,不妨用它父类具体相同功能的方式试试。

0 0
原创粉丝点击