java Mail API接收带有越南字符的电子邮件附件

时间:2010-09-28 04:46:53

标签: java javamail

最近,我按照Sun Mail API指南发送电子邮件,下载电子邮件和下载附件。从电子邮件中提取附件时,我的代码与此帖Download attachments using Java Mail

非常相似

但是,当用户发送带有越南字符的电子邮件附件文件名时遇到问题,如下所示:hệthốngthông.xls

当代码尝试使用: bodyPart.getFileName()获取文件名时,返回文件名是这样的:h? th?ng =?iso-8859-1?b?dGj0bmcueGxz?=

我试过以下但没有运气

  

1)设置Java VM参数:-Dfile.encoding = UTF-8

     

2)尝试进一步了解UTF-8字符支持上的Java Mail API,但无法找到任何

任何提示都会有所帮助。谢谢!

2 个答案:

答案 0 :(得分:3)

您可以使用MimeUtility.decodeWord(bodyPart.getFileName())来获取文件的实际名称。

由于邮件标题只能包含ASCII字符,因此RFC 2047描述了如何编码其他字符集,此方法对RFC 2047中指定的名称进行解码。

答案 1 :(得分:1)

ISO-8859-1是Latin-1字符集。它只包括西欧人物。所以这可能是一个提示。也许问题出在发送附件的客户端?查看邮件的原始来源,检查是否有任何标题说明了文本编码。