我按照说明打开一个邮件商店,使用下面的代码,它很难,花了几秒钟解码我的eml,但后来我没有文件夹也没有消息。没有例外的想法。怎么办?
Store store = session.getStore(new URLName("mstor:test-data/01-one-time-test/215.eml"));
store.connect();
// read messages from Inbox..
Folder inbox = store.getDefaultFolder();
inbox.open(Folder.READ_ONLY);
Folder [] folders = inbox.list();
System.out.println("folder count: " + folders.length);
Message[] messages = inbox.getMessages();
System.out.println("message count: " + messages.length);
=============================================== ====== 我解决了这个问题:
您需要向mstor提供包含mbox文件的文件夹。然后mstor工作得很漂亮。关于它的好处是有一个maven下载。
侨!
答案 0 :(得分:1)
Properties properties = new Properties();
this.properties.setProperty("mail.store.protocol", "mstor");
this.properties.setProperty("mstor.mbox.metadataStrategy", "none");
this.properties.setProperty("mstor.mbox.cacheBuffers", "disabled");
this.properties.setProperty("mstor.mbox.bufferStrategy", "mapped");
this.properties.setProperty("mstor.metadata", "disabled");
this.properties.setProperty("mstor.mozillaCompatibility", "enbled");
this.session = Session.getInstance(this.properties);
try {
final Store store = session.getStore(new URLName("mstor:" + path));
try {
store.connect();
this.inbox = (MStorFolder) store.getFolder(path);//getDefaultFolder();//.getFolder(path);
this.inbox.open(Folder.READ_ONLY);
count =inbox.getMessageCount();
} catch (MessagingException ex) {
ex.printStackTrace();
}
} catch (NoSuchProviderException e) {
e.printStackTrace();
}