使用commons-email解析 eml文件

在对eml文件进行索引的时候需要先对其进行解析,提取出其中的收件人、发件人、文件内容和附件等信息

下边是解析eml文件的一个demo(在运行之前需要先导入mail.jar 和commons-email.jar)


 1 package com.jiaoyiping.windowsfilesearch.test;
2
3 import org.apache.commons.mail.util.MimeMessageParser;
4 import org.apache.commons.mail.util.MimeMessageUtils;
5
6 import javax.mail.MessagingException;
7 import javax.mail.internet.MimeMessage;
8 import java.io.File;
9 import java.io.IOException;
10
11 /**
12 * Created with IntelliJ IDEA.
13 * User: 一平
14 * Date: 14-5-30
15 * Time: 上午9:09
16 * To change this template use File | Settings | File Templates.
17 */
18 public class EmailTest {
19 public static void main(String[] args) {
20 File file = new File("D:\\2013年12月21日重装系统之前数据备份\\邮件备份\\Fw_ Fw_ Fw_ 信息化报表需求.eml");
21 try {
22 MimeMessage mimeMessage = MimeMessageUtils.createMimeMessage(null, file);
23 MimeMessageParser parser = new MimeMessageParser(mimeMessage);
24 System.out.println("发件人:"+parser.getFrom());
25 System.out.println("主题:"+parser.getSubject());
26 System.out.println("收件人:"+parser.getTo());
27 System.out.println(parser.parse().getPlainContent()); //结果为空
28 System.out.println(parser.parse().getHtmlContent()); //结果为空
29 //parse.parse()方法返回的也是MimeMessageParser对象,不调用parse()方法就无法的到邮件内容,只能得到主题和收件人等信息
30 if(parser.parse().hasPlainContent()){ //这里一定要调用parser.parse方法
31 System.out.println(parser.parse().getPlainContent());
32 }
33
34
35
36 } catch (MessagingException e) {
37 e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
38 } catch (IOException e) {
39 e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
40 } catch (Exception e) {
41 e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
42 }
43
44
45 }
46 }

时间: 2024-10-12 02:31:16

使用commons-email解析 eml文件的相关文章

java解析dbf文件

dbf文件, 不能直接另存为excel文件, 会丢数据! 需要将dbf数据存储到数据库中, 在从数据库中将数据导出成excel. import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.sql.Connection; import java.sql.PreparedStatement; import java.util.ArrayList; import java.u

php读取eml实例、php解析eml、eml解析成网页

php读取eml实例,本实例可以将导出eml文件解析成正文,并且可以将附件保存到服务器.不多说直接贴代码了. 如果你觉得此代码不错,请点个赞.谢谢~~~~ <?php // Author: richard [email protected] // gets parameters error_reporting(E_ALL ^ (E_WARNING|E_NOTICE)); header("Content-type: text/html; charset=utf-8"); echo

接口测试-解析har文件

之前我已经研究到让业务测试通过不同方式来获取我们工具需要的har文件,现在我们拿到了业务测试提供的har文件,我们首先要解析这些文件里存放的信息,特别是entries字段里的信息,在万能的github上果然搜出来一个工具包 地址 har 因为maven库里还没有这个jar包提供下载,你需要将源码下载到本地,打包后上传到自己公司的私有库里,供其他开发者下载 源码 主要的类为HarUtils.java,还有命令行下执行需要的2个类(HarCli.java,ViewHar.java),这两个类的主要作

Java通过jxl解析Excel文件入库,及日期格式处理方式 (附源代码)

JAVA可以利用jxl简单快速的读取文件的内容,但是由于版本限制,只能读取97-03  xls格式的Excel. 本文是项目中用到的一个实例,先通过上传xls文件(包含日期),再通过jxl进行读取上传的xls文件(文件格式见下user.xls),解析不为空的行与列,写入数据库. 文件user.xls格式为: 下面来看代码实例演示: 一.前端jsp页面(本来内容很多,这里精简了) <%@ page language="java" contentType="text/htm

SAX解析XML文件

SAX是Simple API for XML的缩写,它并不是由W3C官方所提出的标准.SAX是一种轻量型的方法,不像DOM解析时,把XML文档全部载入内存中,在PC上操作,Dom还有 优势,但在手机中端上则无优势,因为手机内存和硬件都比不上PC强.使用 SAX 是比较安全的,并且 Android 提供了一种传统的 SAX 使用方法,以及一个便捷的 SAX 包装器.SAX采用基于事件驱动的处理方式,它将XML文档转换成一系列的事件,由单独的事件处理器来决定如何处理. 在SAX接口中,事件源是org

使用Commons FileUpLoad组件实现文件上传功能

Commons 是Apache开放的源码组织的一个java子项目,该项目主要涉及一些开发中常用的模块,如文件上传,命令行处理,数据库连接池等.FileUpLoad就是其中的一个用于处理HTTP文件上传的子项目.Commons FileUpLoad组建具有以下几个特点: 1.使用简单:Commons FileUpLoad组件可以方便的嵌入JSP文件中,在JSP文件中仅编写少量代码就可完成文件上传功能,十分方便. 2.能够全程控制上传的内容:使用Commons FileUpLoad组件提供的对象及操

iOS开发- 生成/解析.vcf文件

vcf, 通讯录导出的一种格式. 一.生成vcf文件 如果要把我们iPhone通讯录里的数据, 生成vcf格式文件. 我们可以借助iCloud. 小技巧:通过iCloud导出iPhone通讯录的方法 当然, 如果你想在应用中, 利用代码生成, 完全可以.先导出通讯录数据, 再解析, 再生成vcf文件即可. 参考下面代码: -(NSString*)generateVCardStringWithContacts:(CFArrayRef)contacts { NSInteger counter = 0

微软BI 之SSIS 系列 - 使用 Script Component Destination 和 ADO.NET 解析不规则文件并插入数据

开篇介绍 这一篇文章是 微软BI 之SSIS 系列 - 带有 Header 和 Trailer 的不规则的平面文件输出处理技巧 的续篇,在上篇文章中介绍到了对于这种不规则文件输出的处理方式.比如下图中的这种不规则文件,第一行,第二行 Header 部分,第三行的内容 Content 部分,最后一行的 Trailer 部分. 在前几个课程 微软BI SSIS 2012 ETL 控件与案例精讲 第43,44,45,46 课中,我分别讲解了如何使用 .Script Component Source 解

C++ 中使用boost::property_tree读取解析ini文件

boost 官网 http://www.boost.org/ 下载页面 http://sourceforge.net/projects/boost/files/boost/1.53.0/ 我下载的是 boost_1_53_0.tar.gz 使用系统  ubuntu 12.10 一.解压 [plain] view plaincopy tar -zxvf  boost_1_53_0.tar.gz 得到一个文件夹 boost_1_53_0,  拷贝其子目录 boost 到以下路径 [plain] vi