2016-03-16 7 views
0

Я не могу найти решение, как загружать несколько писем с содержимым Multipart только с одним запросом на сервер (в качестве пакетного выбора). Код я использую:Как загружать письма IMAP с использованием контента MultiPart с помощью JavaMail

FetchProfile lFp = new FetchProfile(); 
lFp.add(FetchProfile.Item.ENVELOPE); 
lFp.add(FetchProfileItem.FLAGS); 
lFp.add(FetchProfileItem.CONTENT_INFO); 
pFolder.fetch(lMessages, lFp); 

но когда lMessages [I] .getContent() используется, следующий запрос к серверу выполняется. Таким образом, для 50 следующих сообщений есть как минимум еще 50 запросов (+ вложенные Multiparts), в моем случае это неприемлемо. Как ускорить его?

ответ

1

Если вы знаете, что всегда хотите получить доступ ко всему содержимому сообщений, вы можете использовать IMAPFolder.FetchProfileItem.MESSAGE.

0

Было бы проще от того, что я нашел, возможно, я проверю его в будущем. Сейчас я использую решение Justmaker от этой темы: JavaMail IMAP over SSL quite slow - Bulk fetching multiple messages

Этот метод является невероятно быстро

EDIT: @Bill Shannon я попробовал Ваше решение. Он более сложный и также загружает вложенные файлы MultiPart, включая вложения