7

javax.mail用来调用邮件服务器并发送一个文件作为邮件附件编码文件名,如下所示:MimeUtility.encodeText(filename,"UTF-8",null)

虽然这在 上运行良好,但在同一邮件服务器上WildFly 8却失败了。我的意思是附件描述是以这种格式接收的:WildFly 9.x =UTF-8BzrTOv866zrnOvM63IM68zrUgzrXOu867zrfOvc65zrrOsS5wZGY==

我一直在尝试:

1)在应用程序服务器上找到一个相对设置 - 不走运。

2) 仅偶尔使用的编码,ISO-8859-7因为它似乎取决于文件名长度和某些字符的存在。

3)在客户端(Microsoft Outlook)上找到一个相关设置,我想它会错过一些成功解码的信息。

有任何想法吗?

提前致谢!!

4

1 回答 1

0

为了测试您的问题,我在这里创建了一个演示项目。它在各个部分发送带有非 ascii 符号的消息,但不使用encodeText,因为它由 Mail API 自动处理。我使用 Wildfly 8、9、10 对其进行了测试,以向http://mailtrap.io发送消息。

第一个屏幕显示从 Wildfly 8 发送的消息。附件未正确发送,因此不存在:

Wildfly 8 中未正确发送附件

第二个屏幕是 Wildfly 9 发送的消息(10 相同)。如您所见,有一个带有正确文件名的附件:

Wildfly 9 和 10 都可以!

那么这里的问题可能是什么?

  • Wildfly 8 附带 Java Mail API 1.5.1
  • Wildfly 9 附带 Java Mail API 1.5.3
  • Wildfly 10 附带 Java Mail API 1.5.5

我认为您在 Java Mail 1.5.1 版中遇到了一个错误。

最有可能的是,您在针对 Wildfly 8(手动使用encodeText)进行编码时解决了该错误,现在该解决方法正在给您带来问题。

于 2016-06-03T14:35:25.420 回答