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 は実際の送信メール数です。