使用Java mail API读取电子邮件时引用/打印未知编码

使用Java mail API读取电子邮件时引用/打印未知编码,java,encoding,jakarta-mail,quoted-printable,Java,Encoding,Jakarta Mail,Quoted Printable,我有一个自己编写的Java邮件客户端,它从邮件服务器读取邮件 我没有任何问题,但最近我发现了一个例外,当这个客户试图阅读一封复杂的电子邮件时。堆栈跟踪显示,编码“引用/可打印”是未知的,可能这些信息足以找到解决方案 无论如何,我将完成问题并将日志放在这里: java.io.IOException: Unknown encoding: quoted/printable at javax.mail.internet.MimePartDataSource.getInputStream(MimePart

我有一个自己编写的Java邮件客户端,它从邮件服务器读取邮件

我没有任何问题,但最近我发现了一个例外,当这个客户试图阅读一封复杂的电子邮件时。堆栈跟踪显示,编码“引用/可打印”是未知的,可能这些信息足以找到解决方案

无论如何,我将完成问题并将日志放在这里:

java.io.IOException: Unknown encoding: quoted/printable
at javax.mail.internet.MimePartDataSource.getInputStream(MimePartDataSource.java:113)
at com.sun.mail.handlers.text_plain.getContent(text_plain.java:107)
at javax.activation.DataSourceDataContentHandler.getContent(DataHandler.java:790)
at javax.activation.DataHandler.getContent(DataHandler.java:537)
at javax.mail.internet.MimeBodyPart.getContent(MimeBodyPart.java:644)
这是消息部分,包含此编码信息

--=_374450e655545f2af979375837b3e516
Content-Transfer-Encoding: quoted/printable
Content-Type: text/plain; charset=utf-8
其余信息是一些thml格式的文本

那么,有没有一种方法可以在不改变javax.mail提供者/版本的情况下解决这个问题? 现在我正在使用

 group: 'com.sun.mail', name: 'javax.mail', version: '1.5.1'

或者我只是误解了这个问题,我应该用另一种方法来解决它?

无论是梅勒创造的信息都被破坏了。请将问题报告给该邮件的所有者。正确的名称是“引用的可打印”,而不是“引用的/可打印”

大多数情况下,此类错误是由于业余爱好者编写垃圾邮件,而不必费心先阅读RFC


您可以将系统属性“mail.mime.ignoreunknownencoding”设置为“true”,让JavaMail忽略错误而不尝试解码数据。您还可以捕获异常,使用getEncoding方法获取标头的值,并尝试猜测发送者的想法,然后使用getRawInputStream方法自己解码数据。

这有帮助吗?@gtgaxiola Umm,实际上我没有手动处理要使用的编码,我只调用没有参数的hrtContent方法