【发布时间】:2013-11-17 22:54:03
【问题描述】:
我想使用 JavaMail 来解析一个 .mbox 文件,就像 http://mail-archives.apache.org/mod_mbox/lucene-java-user/201210.mbox 一样。
我想做的是:
Session session = Session.getDefaultInstance(new Properties());
Store store = session.getStore("Here should go the .mbox file");
store.connect();
Folder folder = store.getFolder(server);
folder.open(Folder.READ_ONLY);
...
事实证明这是错误的。任何建议都会有所帮助。
提前谢谢你。
更新:工作示例
public class MBoxFileReader implements MessageReader {
private final Path path; // Path to .mbox file
public MBoxFileReader(Path path) {
this.path = path;
}
@Override
public Message[] readMessages() {
Message[] messages = new Message[0];
URLName server = new URLName("mbox:" + path.toString());
Properties props = new Properties();
props.setProperty("mail.mime.address.strict", "false");
Session session = Session.getDefaultInstance(props);
try {
Folder folder = session.getFolder(server);
folder.open(Folder.READ_ONLY);
messages = folder.getMessages();
}
catch (Exception e) {
e.printStackTrace();
}
return messages;
}
}
【问题讨论】:
-
我无法让您的代码正常工作。例如,我无法解析任何 javax 邮件 API 中的 MessageReader。从代码中删除“implements MessageReader”并使用没有它的代码(确实编译),我得到了一个“mbox没有这样的提供程序”异常。
-
@Morkus 正如比尔建议的那样,您需要构建 JavaMail mbox 存储并将其导入您的项目中
-
好的。例如,我正在寻找可以从 MacMail 读取常规 MBOX 文件的东西。谢谢。
标签: parsing jakarta-mail java mbox