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

时间:2015-11-02 03:17:48

标签: java 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)。

1 个答案:

答案 0 :(得分:1)

通常.eml文件只包含一条消息。如果您要向单个文件写入多条消息,该文件实际上会成为一个包含多条消息的文件夹,您需要做一些事情来分隔消息,然后您需要检查这种分离并提供具有尊重此分离的InputStream的MimeMessage构造函数。最常见的方法是使用UNIX mbox format支持的JavaMail mbox provider