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时问题解决。后续有新的发现和理解及时更新
解决邮件附件名乱码问题
本文介绍了解决Java发送邮件时附件名出现乱码的方法。通过设置系统属性、使用特定编码方式创建MimeMessageHelper实例及利用MimeUtility.encodeText进行文件名编码,有效避免了Linux环境下附件名显示异常的问题。
1256

被折叠的 条评论
为什么被折叠?



