0

使用带 Windows 的 mstor,我能够连接到 mbox 商店(感谢 SO)。看来我可以阅读消息指针;我知道这一点,因为每当我遍历存储时,它都会遍历正确数量的消息。问题是没有标题和内容正在加载!任何想法?

是的,我在类路径中有 JavaMail 的东西(这些天它在 mstor 的库中)。我什至在 mstor 的一个示例文件 (imagined.mbox) 上使用它。

提前致谢。

我的代码:

public static void main(String[] args) throws Exception {

  Properties props = new Properties();
  props.setProperty("mstor.mbox.metadataStrategy", "xml");
  Session session1 = Session.getDefaultInstance(props);

  Session session = Session.getDefaultInstance(new Properties());

  Store store = session.getStore(new URLName("mstor:C:/tmp/imagined.mbox"));
  store.connect();

  System.out.println(store.isConnected());

  Folder inbox = store.getDefaultFolder();  // no subfolder here; even if there is an Inbox, I get the same thing...
  inbox.open(Folder.READ_ONLY);

  Message[] messages = inbox.getMessages();
  for (Message m : messages) {
    System.out.println(m.getSubject());
  }

}

我的典型结果:

true (i.e., yes, I'm connected...)
null
null
null
null
4

2 回答 2

0

我看到这是一个月大的,但我遇到了同样的问题。尝试添加m.saveChanges()为 for 循环的第一行。这会强制 mstor 创建消息头的缓存。

从逻辑上讲,您上面的代码是正确的。很奇怪,我们必须添加这一行,但它是解决我们问题的一种功能性解决方法。

如果您已经找到其他解决方案,请不要忘记分享。仅仅因为没有人有答案并不意味着没有人有同样的问题!

于 2012-06-15T21:29:05.533 回答
0

创建Properties被调用的实例后properties,使用以下命令禁用缓存:

properties.setProperty("mstor.mbox.metadataStrategy", "none");

如果你这样做并再试一次,你应该会发现你可以调用主题、从、到等的访问器方法,而无需求助于m.saveChanges()黑客。

于 2014-11-28T17:04:23.020 回答