【问题标题】:Getting negative size for Pop3message获取 Pop3message 的负大小
【发布时间】:2012-10-16 17:57:51
【问题描述】:

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

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

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

感谢提前 拉杰什V

【问题讨论】:

  • 我最大的疑问是为什么我的字节数为负数..
  • 您是否考虑过 Pop 帐户正在发送错误代码?这就是为什么没有来自数据源的输入流的部分原因。

标签: java jakarta-mail pop3


【解决方案1】:

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

Q:为什么getSize方法在使用的时候返回的是负数 POP3?

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

来自Oracle JavaMailAPI FAQ

【讨论】:

    猜你喜欢
    • 2014-09-02
    • 2014-06-08
    • 2016-12-19
    • 1970-01-01
    • 2012-07-05
    • 2020-09-05
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    相关资源
    最近更新 更多