我正在尝试使用 Javamail api 在 Gmail 中获取最后发送的邮件。这是代码 -
Properties props = System.getProperties();
props.setProperty("mail.store.protocol", "imap");
try{
Session session = Session.getDefaultInstance(props, null);
Store store = session.getStore("imap");
store.connect(mailbox, mailId, passwod);
sent = store.getFolder("[Gmail]/Sent Mail");
int totalSentMails = sent.getMessageCount();
sent.open(Folder.READ_ONLY);
Message sentmesage = sent.getMessage(totalSentMails);
}
catch (NoSuchProviderException e){
e.printStackTrace();
System.exit(1);
}
由于 getMessage 计数返回的数字远大于实际邮件,因此我得到了 IndexOutOfBoundsException。
如何使用 javamail api 从 Gmail 中获取确切数量的已发送邮件?我得到的错误是 -
java.lang.IndexOutOfBoundsException: 1986 > 1970
1986 是上面获取的 totalSentMails 的值,1970 是实际发送的邮件数