javamail和gmail

jum*_*mpa 4 java gmail jakarta-mail

  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.
    
    Run Code Online (Sandbox Code Playgroud)

即使邮件太多,此代码也会抛出异常indexoutofbounds.我究竟做错了什么?

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

Tne*_*nem 5

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

int messagesToDisplay = 100;
folder.getMessages(totalMessages  - messagesToDisplay , totalMessages);
Run Code Online (Sandbox Code Playgroud)

JavaDoc中,使用基于1的数组而不是0来标识消息.

你还可以添加堆栈跟踪吗?