200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 使用Java mail发送邮件附件出现附件上产生.eml文件夹的问题及附件名.bin结尾问题...

使用Java mail发送邮件附件出现附件上产生.eml文件夹的问题及附件名.bin结尾问题...

时间:2019-12-12 21:13:33

相关推荐

使用Java mail发送邮件附件出现附件上产生.eml文件夹的问题及附件名.bin结尾问题...

近期,线上项目发出邮件是PDF附件但收到的邮件附件格式却不是PDF,发送邮件的技术为JAVA mail 经复现错误现象为下图:

163邮箱:

QQ邮箱:

eml问题排查思路:

1.首先,排除附件本身的问题,附件本身在执行发送邮件之前进行本地服务器文件落地,确认落地的文件确实为PDF格式且附件正常可用。

2.其次,排查公司用的邮件服务器问题是不是对PDF文件进行了某种转码,经验证通过从邮件服务器手动发送邮件,确认收到后的邮件附件正常为PDF格式。

3.最后,跟踪发送邮件的代码并在网上查询相关资料未发现任何和.eml有关的材料,通过在一篇博客中查看正确实例发现在Java mail中正文和附件使用的不是一个MimeBodyPart对象,修改后示例如下:

经测试错误原因是邮件正文和邮件附件用的MimeBodyPart对象是同一个,进而导致上述现象,解决办法为正文是一个MimeBodyPart对象,一个附件是一个MimeBodyPart对象,并将两个对象分别添加到MimeMultipart()

中,经再次测试,问题解决。

.bin问题解决

我在项目中遇到的问题并不是.bin问题,不过网络上有一些关于这个的资料,在本篇帖子中做个记录。

.bin问题的原因为附件名过长导致附件名编码异常,要做几处更改,如下:

问题修复后样图:

QQ邮箱

163邮箱

总结:

在遇到上述这种debug跟不到结尾的问题往往摸不着头脑,所以 解决这种问题的思路应该使用排除法,排除掉外界环境的因素后,认真有条理的跟踪程序代码并且参考一份正确的实例进行比对,这是解决问题的最快办法,至于问题原因这个有时间可以研究,但是在工作中要做的是以最快的速度解决生产环境出现的问题,降低损失。

在本次解决问题的过程中我参考了一篇正确示例代码,网址如下:

/h--d/p/6138900.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。