javamail和gmail

时间:2011-06-23 10:54:03

标签: java gmail javamail

  1. 以下代码抛出IndexOutOfBoundsException。知道为什么吗?

     Folder folder = store.getDefaultFolder();
     folder = folder.getFolder("INBOX");
    
     int totalMessages = folder.getMessageCount();
     //totalMessages is 17000
    
      folder.getMessages(16900, 16999)   --- here I am trying to get the NEWEST 99                                                                                         messages.
    
  2. 即使邮件太多,此代码也会抛出异常indexoutofbounds。我做错了什么?

    1. folder.getMessages() - 获取从第一封电子邮件到最后一封的所有电子邮件。在我的情况下17000 !!如何收到从最新到最旧的电子邮件? 我只想看最新的电子邮件 - 大约100封。这可能吗?

2 个答案:

答案 0 :(得分:5)

永远不要在代码中使用魔法值,它只会让你痛苦。尝试:

int messagesToDisplay = 100;
folder.getMessages(totalMessages  - messagesToDisplay , totalMessages);

JavaDoc开始,使用基于1的数组识别消息而不是0。

请同时添加堆栈跟踪。

答案 1 :(得分:0)

请先在read或read_write模式下打开文件夹。

folder.open(Folder.READ_WRITE);