首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >非拉丁文中的JavaMail文件附件没有正确显示

非拉丁文中的JavaMail文件附件没有正确显示
EN

Stack Overflow用户
提问于 2017-11-09 07:09:22
回答 1查看 358关注 0票数 0

我在一个web应用程序中使用JavaMail (版本1.5)。

用户通过file input元素在html窗体上上传文件。

然后我通过电子邮件发送文件。我使用与通过表单附加的文件相同的名称(即:我不给它自定义名称)。

一些用户上传非拉丁文件名的文件。

根据docs,我理解JavaMail不需要特殊的编码/解码,除非我正在操作原始标头。因此,我通过mimeBodyPart.setFileName(fileName)设置附件的文件名,而不对文件名进行编码。

但是,这会导致文件名在收到的电子邮件中显示为问号或下划线。测试将fileName打印到控制台或系统文件夹将正确显示文件名。

Things我试过

  1. 我尝试将"mail.mime.encodefilename“和"mail.mime.decodefilename”设置为在应用程序的ServletContextListener中为true。
  2. 我尝试使用MimeUtility方法encodeText(text,charset, encoding)

这样做可以正确地显示文件名,但有时它会完全混淆文件名:而不是问号或下划线,它会混淆整个文件名,使其看起来像"=_UTF-8_B_16rXqNeS15XXnSDXnNeg15zXlCAt157XmdeV157XoNeV16og15___ ___filename_1=__4.“

我做了大量的测试,试图找出造成这种混乱的原因,但没有得到一致的结果(对浏览器和文件名长度进行测试)。我怀疑某些东西在测试过程中被缓存,因为结果不一致。

  1. 我尝试通过Java Part方法getSubmittedFileName()和js脚本获取文件名。

有什么建议吗?

示例标题:

内容类型:application/x;name="=?UTF-8?B?16TXlCDXoteV15Mg157Xmdec15nXnSDXnA==?= =?UTF-8?B?1\";name*1=\"5DXqNeV15og157Xodek16guZG9jeA==?=“内容传输-编码: base64内容-配置:附件;filename="=?UTF-8?B?16TXlCDXoteV15Mg157Xmdec15nXnSDXnA==?= =?UTF-8?B?1\";filename*1=\"5DXqNeV15og157Xodek16guZG9jeA==?=”

客户经常查看收到的电子邮件: Gmail网站,Microsoft。

EN

回答 1

Stack Overflow用户

发布于 2021-09-11 21:54:17

我也面临着同样的问题,能够用java-mail-api-1.6解决这个问题。这似乎不标准,但如果你面对这样的问题,它可能是有用的。

其他选项,如使用:

attachment.setFileName(MimeUtility.encodeText(FileName, "UTF-8", null));

在不同的邮件服务器上表现不佳;结果是随机和混乱的。

下面是我使用的步骤:

步骤1:设置下列属性:

代码语言:javascript
运行
复制
props.put("mail.mime.encodefilename", "true");
props.put("mail.mime.encodeparameters", "false");

步骤2:将文件名设置为:

代码语言:javascript
运行
复制
attachment.setHeader("Content-Type", "application/octet-stream; 
name=\""+FileName+"\"");
attachment.setHeader("Content-Disposition", "attachment; 
filename=\""+FileName+"\"");

然后删除其他文件名设置语句,如

代码语言:javascript
运行
复制
attachment.setFileName(FileName);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47195907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档