1 在创建邮件前添加:
System.setProperty("mail.mime.splitlongparameters", "false");
2.在创建MimeMessageHelper对象时添加:
MimeMessageHelper messageHelper = new MimeMessageHelper(message,true, "utf-8");
3.在添加附件名时添加:
messageHelper.addAttachment(MimeUtility.encodeText(fileName, "utf-8", "B"), file);
写在最后
MimeUtility.encodeWord()也同样具备防止附件名乱码的问题,但经使用时发现在Linux服务器部署时依然存在诸如utf-8?==之类的乱码,后调整成encodeText时问题解决。后续有新的发现和理解及时更新