资讯专栏INFORMATION COLUMN

解决java发邮件中文名太长乱码问题

gitmilk / 1679人阅读

摘要:当我们使用包或者发送邮件带有附件后,可能会出现较长的中文名乱码的情况,之后我们采用网上大多数人说的对文件名进行处理,然鹅,并不能解决问题。

当我们使用commons-email包或者javaMail发送邮件带有附件后,可能会出现较长的中文名乱码的情况,之后我们采用网上大多数人说的MimeUtility.encodeText()对文件名进行处理,然鹅,并不能解决问题。
文件名处理

如下设置附件名并发送邮件,经测试,在Mac电脑上自带邮箱客户端文件名正常,Mac端网友邮箱客户端显示未命名,手机网易邮箱客户端附件名异常以.bin结尾,Outlook for Windows 上出现乱码附件名。

EmailAttachment attachment = new EmailAttachment();
fileName = MimeUtility.encodeText(fileName);
attachment.setName(fileName);

解决之道

经过多方搜集解决方案,此篇文章分析的较好,因为该问题涉及了一个系统配置项mail.mime.splitlongparameters,这项配置为true时,对于长文件名将采用这种模式处理附件名,并且很多客户端对于这种模式的支持也不太好,将这个设置为false后,发送附件名在上述出问题的客户端下均显示正常了。

// 设置系统属性
System.setProperty("mail.mime.splitlongparameters", "false");

EmailAttachment attachment = new EmailAttachment();
fileName = MimeUtility.encodeText(fileName);
attachment.setName(fileName);

diboot 简单高效的轻代码开发框架

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75449.html

相关文章

  • JavaMail邮件送不成功的那些坑人情况及分析说明

    摘要:网上也有不少人反馈用手机客户端无法使用新浪邮箱发送邮件,随后我尝试用登录新浪邮箱,也出现只能接收邮件而不能发送邮件的情况。三附录错误码及建议解决方法发送邮件成功却收不到邮件或收到邮件无主题无收件人乱码新浪邮箱诚信平台 前言   JavaMail的使用本身并不难,网上有不少案例,简单易懂,而且有详细的中文注解。但是由于JavaMail的机制设置不够完善,特别是异常出错时的参考信息太少,给...

    y1chuan 评论0 收藏0
  • 本周总结(文件上传,下载,邮件

    摘要:文件上传上传对表单限制表单中需要添加文件表单项用户名照片上传上传对限制文件上传不能使用这个方法在表单为时,它作废了。 文件上传 1.上传对表单限制 method=post enctype=multipart/form-data 表单中需要添加文件表单项: ${msg } 用户名; 照 片: 2.上传对Servlet限制 文件上...

    luxixing 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<