저는 javamail을 사용하여 IMAP 서버 (현재 GMail)에서 메일을 검색하고 있습니다. Javamail은 서버에서 특정 폴더의 메시지 목록 (ID 만)을 매우 빠르게 검색하지만 실제로 메시지를 가져올 때 (내용도 포함하지 않음) 각 메시지마다 약 1-2 초가 걸립니다. 빠른 검색을 위해 어떤 기법을 사용해야합니까? 이 그것이 Gmail이 문제가 될 수만큼 많이 JavaMail에 문제가있는 경우 잘 모르겠어요Javamail 성능
try {
IMAPStore store = null;
if(store!=null&&store.isConnected())return;
Properties props = System.getProperties();
Session sessionIMAP = Session.getInstance(props, null);
try {
store = (IMAPStore) sessionIMAP.getStore("imaps");
store.connect("imap.gmail.com",993,"[email protected]","password");
} catch (Exception e) {
e.printStackTrace();
}
IMAPFolder folder = (IMAPFolder) store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
System.out.println("start");
Message[] msgs = folder.getMessages(1,10);
long ftime = System.currentTimeMillis();
FetchProfile fp=new FetchProfile();
fp.add(FetchProfile.Item.ENVELOPE);
folder.fetch(msgs, fp);
long time = System.currentTimeMillis();
System.out.println("fetch: "+(time-ftime));
for (Message message : msgs) {
System.out.println(message.getSubject());
Address[] from = message.getFrom();
for (Address address : from) {
System.out.println(address);
}
Address[] recipients = message.getAllRecipients();
for (Address address : recipients) {
System.out.println(address);
}
}
long newTime = System.currentTimeMillis();
System.out.println("convert: "+(newTime-time));
}catch (Exception e) {
e.printStackTrace();
}
}