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

标签 java jakarta-mail

最近我按照Sun关于Java Mail API的在线指南来发送电子邮件、下载电子邮件和下载附件。当谈到从电子邮件中提取附件时,我的代码看起来与这篇文章Download attachments using Java Mail非常相似。

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

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

我尝试了以下方法,但没有成功

1) set Java VM parameter: -Dfile.encoding=UTF-8

2) try to look further into the Java Mail API on UTF-8 Character support, but cant find any

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

最佳答案

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

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

关于java Mail API接收带有越南字符的电子邮件附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3809753/

相关文章:

java - 使用javax.mail对SMTP发送进行错误处理

Java/OpenGL : Getting the image of a Canvas as a BufferedImage

java - 我可以将 jar 添加到 Maven 2 构建类路径而不安装它们吗?

java - 有没有一种安全的方法来区分 SendFailedExceptions 和 JavaMail 的类型

java - 读取传入电子邮件键值的便捷方法

java - 如何编写java程序从任何电子邮件ID读取新电子邮件

Java邮件 : How to read an email thread

java - 是否可以创建多个对象的列表,其中对象采用多个参数?

java - 我的代码的哪一部分在事件调度队列中

java - Eclipse 发生错误。请参阅日志文件 (Windows x64)