如何使用javamail从.eml文件中读取多封电子邮件



用于编写文件的代码片段-

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格式。

相关内容

  • 没有找到相关文章

最新更新