1

我正在从 IMAP 服务器 (Gmail) 检索一条消息,并尝试将其连同一些有关它的信息打印出来,最终存储在一个字符串中以供稍后解析。我正在打印以下内容

System.out.println(message.getSubject());
System.out.println(message.getFrom()[0]);
System.out.println(message.getReceivedDate());
System.out.println(message.getContent().toString());

这就是它打印出来的

Your Order with Amazon.com
"auto-confirm@amazon.com" <auto-confirm@amazon.com>
Tue Dec 30 23:14:01 EST 2008
javax.mail.internet.MimeMultipart@6baa6838

前 3 个打印出来的正是我所期望的,但最后一个应该是整个消息,不是吗?如果没有,我需要做什么才能将整个消息作为字符串获取?

4

2 回答 2

2

IMAPMessage 扩展了 MIMEMessage,并且根据docs,该getContent()方法返回一个对象。不保证对象的类型是字符串。在您的情况下,返回的 Object 是MIMEMultipart. 查看此常见问题解答及其示例 (msgshow.java),了解如何处理MIMEMultipart对象。

于 2013-04-12T20:41:05.767 回答
0

这是因为 MimeMultipart 类没有实现 toString 方法。我没有测试过这个,但你总是可以试试这个。

((MimeMultipart)message.getContent()).writeTo(System.out);

就像在另一篇文章中指出的那样,要小心,因为不能保证总是返回 MimeMultipart。

于 2013-04-12T20:56:11.097 回答