2015-11-02 39 views
0

代码段用于写入文件 -
如何读取从.eml文件的多个电子邮件使用JavaMail

ObjectOutputStream objOut = new ObjectOutputStream(new 
       FileOutputStream(new File("inboxEmails.eml")) 

       for (Message message : messages) { 
        message.writeTo(objOut); 
        System.out.println("Writing to file"); 
       } 
      } 

消息是具有超过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

通常.eml文件只包含一条消息。如果要将多条消息写入单个文件,该文件实际上变成了一个包含多条消息的文件夹,并且您需要执行某些操作来分隔消息,然后您需要检查此分隔并显示MimeMessage构造函数与一个尊重这种分离的InputStream。执行此操作的最常见方法是使用JavaMail mbox provider支持的UNIX mbox format

相关问题