失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > java foxmail 附件_spring javamail发邮件附件中文名乱码的解决方案总结

java foxmail 附件_spring javamail发邮件附件中文名乱码的解决方案总结

时间:2020-08-22 00:39:05

相关推荐

java foxmail 附件_spring javamail发邮件附件中文名乱码的解决方案总结

用spring javamial发邮件的时候,附件中文名乱码的解决方法,大家熟知的应该是MimeUtility.encodeWord(),没错,使用这个方法在foxmail客户端上收邮件中文附件名可以正常展现了,但在个别的outl express 中, 还是乱码.反复切换outlook的编码方式,发现设置为"GB2312"的时候,附件名的中文不乱码了.但邮件主题,正文却乱了. 看来这个outlook express 对于邮件正文和附件名的编码方式是有区别的.

解决办法:

选中乱码的邮件,右键邮件属性,查看详细信息中的 邮件原信息.Message-ID: <18283318.809.1323831620505.JavaMail.weblogic@RP8407PS>

Subject: =?utf-8?B?5Liq6LS36aOO6Zmp566h55CG57O757uf6L+Q6KGM5pel5oqlMjAxMeW5tDEy?=

=?utf-8?B?5pyIMTPml6Uo5q2k6YKu5Lu25Li6?=

这段代码表示邮件主题是用 utf-8的编码方式 也就是通知邮件客户端使用何种编码方式显示邮件内容

继续往下 ------=_Part_808_27391340.1323831620456

Content-Transfer-Encoding: quoted-printable

Content-Type: text/html;charset=utf-8

这段代码表示邮件正文也是用 utf-8的编码方式.也就是通知邮件客户端使用何种编码方式显示邮件内容 (在用foxm客户端收邮件的时候,最方便是把编码方式设置为自动,foxma会自动选择合适的编码方式才显示邮件)

这两个地方的设置,在spring 的javamail中的一个地方就可以设置

MimeMessageHelper helper = new MimeMessageHelper(msg, true, "UTF-8");

继续往下

=3DUTF-8">

如果邮件正文只是用普通的文本,而不是HTML 可以跳过这段

这段代码表示邮件正文中的html中的编码方式也是UTF-8

只要保证这两个地方编码方式一致,就可以保证邮件主题,正文和附件名都能正常显示中文名.

总结:

这里只讨论GBK和UTF-8两种编码方式

乱码的原因 邮件内容使用的是GBK的编码方式,但客户端展现的时候却使用了UTF-8,那肯定乱码,反过来也一样.

总之foxmail对中文的支持比outlook 要好很多,建议大家还是使用foxmail吧.为了解决这个outlook 附件名乱码的问题折腾了我整整两天啊!

用spring javamial发邮件的时候,附件中文名乱码的解决方法,大家熟知的应该是MimeUtility.encodeWord(),没错,使用这个方法在foxmail客户端上收邮件中文附件名可以正常展现了,但在个别的outl express 中 还是乱码.

如果觉得《java foxmail 附件_spring javamail发邮件附件中文名乱码的解决方案总结》对你有帮助,请点赞、收藏,并留下你的观点哦!

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