0

我要求我应该阅读邮件,并且我应该从邮件内容中获取一些标题信息。

为此,我正在以下列方式阅读邮件..

POP3Message objMsg = (POP3Message) instFolder.getMessage(totCount);   // line 1
String size = objMsg.getSize();                          // line 2
System.out.println("size :: "+size);                      // line 3 

Multipart multipartLevel_1 = (Multipart) objMsg.getContent();   // line 14 
int nmultiCount = multipartLevel_1.getCount();                  // line 15

在第 3 行,我得到 :: size :: -1050

在第 15 行我收到 MessagingException 说..

javax.mail.MessagingException:没有来自数据源的输入流

你能告诉我为什么我的消息大小为负,它应该返回消息的字节数

在获取多部分对象时为什么我会收到 MessagingException

感谢提前拉杰什五世

4

1 回答 1

1

这是答案 - 谷歌确实有帮助:

问:为什么在使用POP3 时getSize 方法返回一个负数?

A: 你的 POP3 服务器坏了。POP3 提供程序使用 TOP 命令来获取消息的标头,并使用 LIST 命令来确定整个消息的大小。然后它减去这两个值以确定消息正文的大小。如果服务器错误地报告了整个消息的大小,您可能会得到一个负数。您可以将属性“mail.pop3.disabletop”设置为“true”以禁用 TOP 命令,但请注意,这将导致对邮件头的任何访问都获取整个邮件。

来自Oracle JavaMailAPI 常见问题解答

于 2012-10-16T08:08:33.047 回答