我们有一个使用 Java Mail API 访问 Gmail 帐户 (IMAP) 的应用程序。适用于所有类型的电子邮件,但包含 .eml 文件作为附件且使用 Thunderbird 发送的邮件除外。
这是尝试检索该消息时的异常堆栈跟踪。请指教。
Caused by: com.google.code.javax.mail.MessagingException: Unable to load BODYSTRUCTURE
at com.google.code.com.sun.mail.imap.IMAPMessage.loadBODYSTRUCTURE(IMAPMessage.java:1377)
at com.google.code.com.sun.mail.imap.IMAPMessage.getContentType(IMAPMessage.java:492)
最佳答案
我成功使用 this方法。简而言之,如果您的 Message
类型为 MimeMessage
并且遇到此异常,请从原始 MimeMessage 创建一个新的 MimeMessage 实例并对其进行处理。例如,当我调用 Message 的 getContent()
方法时出现此错误,因此我编写了以下方法来获取内容:
private Object getEmailContent(Message email) throws IOException, MessagingException {
try {
return email.getContent();
} catch (MessagingException e) {
// handling the bug
if (email instanceof MimeMessage && "Unable to load BODYSTRUCTURE".equalsIgnoreCase(e.getMessage())) {
return new MimeMessage((MimeMessage) email).getContent();
} else {
throw e;
}
}
}
关于gmail - 使用 Thunderbird 发送的包含 .eml 文件的电子邮件无法加载 BODYSTRUCTURE 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18115854/