获得Pop3message的负大小

时间:2012-10-16 07:26:58

标签: java javamail pop3

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

因为我正在以下列方式阅读邮件。

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:没有来自数据源的输入流

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

并且在获取multipart对象时为什么我收到MessagingException

谢谢你的进步 Rajesh V

1 个答案:

答案 0 :(得分:1)

以下是答案 - 谷歌确实提供了帮助:

  

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

     

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

来自Oracle JavaMailAPI FAQ