用于编写文件的代码段 -
ObjectOutputStream objOut = new ObjectOutputStream(new
FileOutputStream(new File("inboxEmails.eml"))
for (Message message : messages) {
message.writeTo(objOut);
System.out.println("Writing to file");
}
}
messages是一个包含30多条消息的数组。
检索 -
Properties props = new Properties();
props.setProperty("mail.store.protocol", "imaps");
Session session = Session.getDefaultInstance(props, null);
InputStream source = inboxFile;
MimeMessage message = new MimeMessage(session, source);
这只给我一条消息。我想检索对象列表中的所有消息(30)。
答案 0 :(得分:1)
通常.eml文件只包含一条消息。如果您要向单个文件写入多条消息,该文件实际上会成为一个包含多条消息的文件夹,您需要做一些事情来分隔消息,然后您需要检查这种分离并提供具有尊重此分离的InputStream的MimeMessage构造函数。最常见的方法是使用UNIX mbox format支持的JavaMail mbox provider。