分享

javamail读取并解析eml文件

 Elena 2006-05-25

javamail读取并解析eml文件

writeTo方法可以把message信息写入OutputStream,从而可以保存冲eml文件。项目中一个需求是需要把eml文件读入并解析。


自己实现解析当然可以,不过挺复杂的,要实现信息头的分析,信息本题的分析...首先想到的当然是javamail本身的功能。


在google搜索了一下,果然找到了:


MimeMessage(Session session, java.io.InputStream is)
          Constructs a MimeMessage by reading and parsing the data from the specified MIME InputStream.


javamail中MimeMessage类的一个构造函数可以接收InputStream,这样就简单了,只要用FileInputStream读入文件即可:)


需要注意的是这个构造函数还需要一个Session参数,看网上的例子是用smtp服务器的信息来填充这个session的,但是我想这个session可能是用来发邮件,或者转发用的,所以如果不发送邮件,仅仅是读入eml并解析,随便一个session的实力都可以。实现法法如下:


public void readEmlFile(String fileName) throws MessagingException {
        try {
            //TODO readEmlFile
            InputStream fis = new FileInputStream(fileName);
            Object emlObj = (Object)fis;
            Session mailSession = Session.getDefaultInstance(System.getProperties(), null);
            MimeMessage msg = new MimeMessage(mailSession,fis);
                        
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

很明显,只要对msg进行解析即可。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多