0

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

这可能吗?

代码与此类似

        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

4

1 回答 1

1

如果您想在一个呼叫中获取整个消息,并且不需要使用 IMAP 协议的任何功能,您有两种选择:

  1. 使用 POP3 而不是 IMAP。
  2. 使用 Message.writeTo 方法将消息内容写入文件或字节数组并从那里处理它,例如,使用采用 InputStream 的 MimeMessage 构造函数。(这会生成整个消息的本地副本。)
于 2013-04-17T18:39:51.937 回答