用于编写文件的代码片段-
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)。
通常.eml文件只包含一条消息。如果要将多条消息写入单个文件,那么该文件实际上会成为一个包含多条消息的文件夹,您需要采取措施来分离消息,然后您需要检查这种分离,并向MimeMessage构造函数提供一个尊重这种分离的InputStream。最常见的方法是使用JavaMail-mbox提供程序支持的UNIX-mbox格式。