网上好多说是被截取了,要使用
System.getProperties().setProperty("mail.mime.splitlongparameters", "false");
或者
System.setProperty("mail.mime.splitlongparameters", "false");
来设置邮件附件名过长不被自动截取的问题,(默认是true自动截取,设置为false不截取),
可能不大适合我或者我的代码,我没成功。
我使用了下面这句代码
messageBodyPart.setFileName(MimeUtility.encodeText(attachment[i].getName()));
解决了邮件附件文件名过长不能正常显示读取的问题以及附件文件名为中文名时乱码的问题。
使用以下代码可以解决邮件附件中文名乱码的问题,但是没解决附件文件名过长邮件不能正常显示读取附件的问题:
BASE64Encoder enc = new BASE64Encoder();
String fileName = "=?UTF-8?B?" + enc.encode(attachment.getName().getBytes("utf-8")) + "?=";//attachment是文件
messageBodyPart.setFileName(fileName);