问题前提:公司需要往邮件中写 excle 文件,返送成功后发现文件格式有误(如:xxxx.bat 等文件后缀),但是有些文件又不会,

后来发现是由于文件名称太长所导致。

问题原因:java mail中设置附件名称会采用 base64格式进行编码,如果附件名称过长会被进行切割,将剩下字符抹去,所以导致不知道这是什么格式的文件。

注:虽然将文件格式被改变了,但是若强制转换成 .xlsx格式 or xls格式 仍然可以进行打开,文件内容也并非改变(这是测试后的结果)

如何解决:

 由于是spring boot 项目,只需要在main方法中加入以下 代码即可(大概意思就是,取消切割,默认是true)

System.setProperty("mail.mime.splitlongparameters", "false");

参考文档:https://blog.csdn.net/z69183787/article/details/79238735

若有问题下方留言,遇到此问题记录下
05-07 13:32