JavaMail发送带图片正文的邮件,outlook显示成附件的问题
业务功能上需要实现定时截取系统的指定页面配合自定义的文字模板,定期的给订阅的人发送邮件,由于phantomJs已停止维护,无人解决的BUG太多,决定使用puppeteer来获取功能截图。后端通过定时任务执行node命令,传入参数,调用puppeteer将截图保存在指定的路径后,获取用户配置的模板信息,将文件和截图打包成图文邮件的格式发送给用户。
puppeteer的安装、运行顺利通过,截图按照预期生成,邮件发送后outlook显示成附件,并且连同模板的文字也显示成附件了(别的邮件客服端显示正常!!),设置了outlook信任依然无效,如图:
按照其他人的做法,设置了contentType以及contentId并没有什么作用,最终发现在生成MimeMultipart 图片和文本关联对象时,由于先创建了图片的MimeBodyPart 对象,后创建文本MimeBodyPart 对象而导致该问题出现!!虽然没想明白,但调换生成顺序确实解决了该问题。。。。