使用java在一次调用中读取标题和正文

时间:2013-04-17 12:11:47

标签: download javamail

我有一个邮件阅读器类,它设置FetchProfile,然后执行msg.getContent。 我想在一次通话中同时读取标题和内容,基本上在一次通话中下载完整的邮件。因为我观察过msg.getcontent调用服务器来获取正文/内容,如果我们可以在一次调用中下载完整的邮件,就可以保存对服务器的调用。

这可能吗?

代码与此类似

        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 个答案:

答案 0 :(得分:1)

如果您希望在一次通话中输入整个消息,并且不需要使用IMAP协议的任何功能,则有两种选择:

  1. 使用POP3代替IMAP。
  2. 使用Message.writeTo方法将消息内容写入文件或字节数组并从那里处理它,例如,使用带有InputStream的MimeMessage构造函数。 (这是整个邮件的本地副本。)