У меня есть требование, чтобы сделать клиент IMAP в качестве веб-приложенияВозможно ли использовать IMAP + пейджинг?
Я достиг функциональности сортировки, как:
//userFolder is an Object of IMAPFolder
Message[] messages = userFolder.getMessages();
Arrays.sort(messages, new Comparator<Message>()
{
public int compare(Message message1, Message message2)
{
int returnValue = 0;
try
{
if (sortCriteria == SORT_SENT_DATE)
{
returnValue = message1.getSentDate().compareTo(message2.getSentDate());
}
} catch (Exception e)
{
System.out.println(e.getMessage());
e.printStackTrace();
}
if (sortType == SORT_TYPE_DESCENDING)
{
returnValue = -returnValue;
}
return returnValue;
}
});
фрагмент кода не является полным, его просто кратко SORT_SENT_DATE, SORT_TYPE_DESCENDING являются мои собственные константы.
На самом деле это решение работает нормально, но она не в логике для подкачки Будучи веб-приложение, я не могу ожидать сервер для загрузки всех сообщений для каждого пользователя и сортировать их (У нас есть ситуации> 1000 одновременных пользователей почтовые ящики, имеющие более 1000 сообщений)
Также не имеет смысла загружать все веб-серверы, сортировать их, возвращать только небольшую часть (скажем 1-20), и по следующему запросу снова загружать все их сортировать и возвращать (21-40). Возможно кэширование, но пользователь gaurantee действительно сделает запрос?
Я слышал, что есть класс под названием FetchProfile, может ли это помочь мне здесь? (Я предполагаю, что он все равно загрузит все сообщения, но только необходимую информацию) Есть ли другой способ достичь этого?
Мне нужно решение, которое могло бы также работать в операции поиска (поиск с поиском подкачки), Я создал архитектурную архитектуру для создания SearchTerm, но здесь мне также понадобится подкачка.
для реф, я задал этот же вопрос по адресу: http://www.coderanch.com/t/461408/Other-JSE-JEE-APIs/java/it-possible-use-IMAP-paging
BTW, я никогда не пытался реализовать это с помощью JavaMail API, но библиотеки с открытым исходным кодом Risoretto (http://columba.sourceforge.net/ristretto-1.0-docs/) должны его поддерживать. –
+1 за предложение, Мой сервер не поддерживает сортировку Расширение (я использую GMAIL в настоящее время для тестирования) –
Говоря чисто в терминах IMAP, вторым лучшим способом после расширения SORT является FETCH 1: * BODY .PEEK [HEADER.FIELDS (SUBJECT)], который вернет вам ключи сортировки.Затем вы можете отсортировать его и получить список номеров сообщений, эквивалентный списку, полученному от SORT. К сожалению, это не лучший способ реализовать его на практике. - Что мы делаем в приложении, это FETCH всех конвертов (в определении IMAP) и кэширования. Затем мы синхронизируем кеш (RFC4549 - http://www.isi.edu/in-notes/rfc4549.txt) и используем его для сортировки и отображения. –