2013-04-17 3 views
0

У меня есть класс чтения почты, который устанавливает FetchProfile, а затем выполняет msg.getContent. Я хочу делать как чтение заголовка, так и содержимого в один звонок, в основном загружать полную почту за один звонок. Поскольку я наблюдал, что msg.getcontent делает вызов на сервер, чтобы получить тело/содержимое, если мы можем загрузить полную почту в один звонок, вызов на сервер можно сохранить.Прочитайте как заголовок, так и тело одним вызовом, используя java

Возможно ли это?

код похож на этот

 inbox.open(Folder.READ_ONLY); 

    /* Get the messages which is unread in the Inbox */ 
    Message messages[] = inbox.search(new FlagTerm(
      new Flags(Flag.SEEN), false)); 

    /* Use a suitable FetchProfile */ 
    FetchProfile fp = new FetchProfile(); 
    fp.add(FetchProfile.Item.ENVELOPE); 
    fp.add(FetchProfile.Item.CONTENT_INFO); 
    inbox.fetch(messages, fp); 

    for (int i = 0; i < messages.length; i++) { 
     System.out.println("MESSAGE #" + (i + 1) + ":"); 
     Message message = messages[i]; 

     **String content = message.getContent();** 
     System.out.println("Content : " + content); 
    } 

Цените любую помощь.

Спасибо и наилучшие пожелания Raaghu.K

ответ

1

Если вы хотите, чтобы сообщение всего в одном вызове, и не нужно использовать какой-либо из функций протокола IMAP, у вас есть два варианта:

  1. Используйте POP3 вместо IMAP.
  2. Используйте метод Message.writeTo для записи содержимого сообщения в файл или массив байтов и обработайте его там, например, используя конструктор MimeMessage, который принимает InputStream. (Это делает локальную копию всего сообщения.)
+0

Да. Этот метод работает, но мало опасен для реализации, поскольку он может загружать всю почту (вложение тоже) и может вызвать нехватку памяти. – Raaghu

+0

Да, но это то, о чем вы просили, «скачайте полную почту одним звонком». Невозможно загрузить заголовки и только основной текст сообщения за один вызов, потому что пока вы не изучите структуру сообщения, вы не знаете, где находится основной текст сообщения. –

+0

Справа. Ваш подход и предложения отвечают на мой вопрос, я только что объяснил опасность/отступить – Raaghu

Смежные вопросы