Я использую JavaMail 1.5.2 для чтения сообщений из учетных записей IMAP. Для уменьшения количества запросов к хосту я PreFetch некоторым данные сообщений, как From, Date, Message-ID и т.д .:Предварительный предварительный выбор текста из сообщения JavaMail
Folder folder = store.getFolder("inbox");
folder.open(Folder.READ_ONLY);
FetchProfile fp = new FetchProfile();
fp.add(FetchProfile.Item.ENVELOPE);
fp.add(FetchProfile.Item.CONTENT_INFO);
fp.add("Message-ID");
Message msgs[] = folder.getMessages();
folder.fetch(msgs,fp);
Однако, я хочу также упреждающего некоторых части содержания, чтобы создать Предварительный просмотр текста для почты без необходимости загружать полное сообщение со всеми вложениями. Например, я хотел бы предварительно выбрать все части содержимого, которые имеют тип «text/plain» и не являются вложениями. Это возможно?
PS: Я не ищу решение, такое как fp.add(IMAPFolder.FetchProfileItem.MESSAGE)
, потому что это будет префикс всего сообщение со всеми вложениями.
Спасибо за этот очень полезный ответ. Простите, что я смел, но вы можете добавить код Java, который показывает, как создавать и отправлять команду IMAP для извлечения данных сообщений. Я никогда не делал этого раньше, и, вероятно, мне понадобится время, чтобы понять, как это сделать. Похоже, что вы уже делали что-то подобное раньше, я бы очень признателен, если вы можете поделиться каким-то кодом. –
Я делал такие вещи, прежде чем использовать IMAP, но я боюсь, что библиотека Javamail - это еще одна история. Я только что прочитал и изменил код Javamail, но не написал ничего с нуля, поэтому, хотя это может быть всего 10-20 строк, мне потребуется час или больше, и это больше, чем я могу потратить на Stack Overflow. Сожалею. – arnt
Абсолютно никаких причин сожалеть. Я думал, что вы уже написали некоторый код, связанный с JavaMail, для этой проблемы и можете быстро скопировать его здесь. Я очень уверен, что ваш ответ приведет меня к правильному решению моей проблемы. FYI: Я не буду принимать ваш ответ сразу, потому что я хочу ждать 1 или 2 дня для получения дополнительных ответов/решений. –