Javax mail api:获取message.getdescription()= null

时间:2018-04-11 09:58:14

标签: java javamail

我通过imap阅读邮件,我能够收到邮件,主题,发送日期和地址。但是消息描述是null。我使用了Javax mail api 1.4。

2 个答案:

答案 0 :(得分:0)

在MimeMesage documentation中,getDescription()方法用于获取"内容描述"消息的标题字段。

如果要提取正文,可以在消息对象上使用MimeMessageParser。

final MimeMessageParser parser = new MimeMessageParser(message);
String body = null;
try {
    parser.parse();
} catch (Exception e) {
    LOG.error("Exception during parsing the message body: {}", e);
}
if (parser.hasPlainContent()) {
    body = parser.getPlainContent();
} else if (parser.hasHtmlContent()) {
    body = parser.getHtmlContent();
}

答案 1 :(得分:0)

MimeMessage::getDescription()的{​​{3}}说:

  

返回此Message的“Content-Description”标头字段。这通常将一些描述性信息与此部分相关联。 如果此字段不可用或其值不存在,则返回null。

因此,如果getDescription()返回null,则表示您尝试阅读的MIME邮件没有该字段,或者该字段为空。

由于javadoc声明了“内容描述”,因此是合法的:

  

此标题字段始终是可选的。

简而言之,您的应用应该设计为getDescription()返回null

您评论道:

  

message.getDescription()应该给我邮件的正文。哪个我变空了。

这不是getDescription()所做的。如果您想要邮件的正文,请使用getContent()getContentAsStream()