工具特点

1、绿色纯天然,无任何依赖库,文件大小不到150K

2、可批量解析EML格式的电子邮件;

3、可提取EML文件中的正文附件到指定目录;

4、可生成HTML格式的邮件列表清单,方便用户进行离线阅读;

5、可生成JSON格式的邮件列表清单,方便用户进行二次开发;

6、基于命令行参数的执行程序,可方便集成到第三方程序中使用;

7、无需安装任何客户端软件即可阅读邮件;

下载地址(EmlParse.zip)

使用方法

EmlParse EML_PATHFILE [-folder] -o OUT_FOLD

EML_PATHFILE:EML格式的文件路径,如果指定-folder,则该参数是一个目录,用于导出整个目录中的EML文件。

-o:用于指定EML解析后输出的目录,如果不指定,则导出到当前目录下。

1、将指定EML格式文件解析到指定目录

EmlParse c:/temp.eml -o c:/mailout

将C盘的temp.eml文件解析到C盘的mailout目录中。

2、将指定目录中的EML格式文件解析到指定目录

EmlParse c:/emlfolder -folder -o c:/mailout

-folder参数用于指定导出的是目录。

将C盘的emlfolder中所有EML格式文件解析到C盘的mailout目录中。

输出内容

1、邮件正文和附件

该工具会在指定的输出目录(-o指定的参数)中创建一个与邮件文件名相同的子目录,并将该邮件的正文附件解析到该子目录中。邮件的正文文件名以"body"作为前缀,通常包括两个正文,一个是HTML格式,一个是纯文本的txt格式。附件文件以实际的文件名进行保存。除上述文件外,电子邮件中还会包含一些内嵌资源文件,比如图片,这些内嵌资源主要在HTML格式的正文中显示。

2、邮件清单(HTML格式)

该工具会在指定目录中生成一个maillist.html的文件,该文件包含导出的邮件的概要信息,包括:发件人、主题、发送日期、以及附件清单,该列表以日期的降序排列。如下图:

点击主题可查看邮件具体内容。

3、邮件清单(JSON格式)

该工具除生成HTML文件外,还会生成一个同名的JSON格式文件maillist.json,JSON格式如下:

{
"list": [{
"file": "电子邮件文件名.eml",
"from": "发件人",
"subject": "邮件主题",
"to": "收件人"
"cc": "抄送人",
"date": "Wed, 19 Oct 2016 11:19:46 +0800 (CST)",
"time": 1476847186,
"html": "邮件正文文件.html",
"text": "邮件正文文件.txt",
"attachment": ["附件1.pptx", "附件2.doc"],
}]
}

【字段说明】

list: 对象数组,里面是所有邮件解析后的列表,详情如下;

file: 解析的电子邮件文件名;

from: 发件人的电子邮件地址;

to: 收件人电子邮件地址,如果存在多个,则会用","进行分割;

cc: 抄送人电子邮件地址,如果存在多个,则会用","进行分割;

date: 邮件发送日期,字符串格式;

time: 邮件发送日期,整形格式;

html: HTML格式的邮件正文文件名称;

text: TXT格式的邮件正文文件名称;

attachment: 附件文件数组;

第三方用户可以根据该文件编写自己的邮件列表显示界面,并进行邮件管理等工作。

如何接收和解析邮件可参考如下文章

POP3:基于命令行的电子邮件(EMail)在线查看和批量下载工具

POP3协议(电子邮件邮局协议)中UIDL和TOP命令在实际使用中的作用

如何解析EML(邮件)格式的文件以及一款小巧的EML邮件阅读工具

EmlParse:一款超轻量级的批量解析EML格式电子邮件的工具的更多相关文章

  1. 分享自己的超轻量级高性能ORM数据访问框架Deft

    Deft 简介 Deft是一个超轻量级高性能O/R mapping数据访问框架,简单易用,几分钟即可上手. Deft包含如下但不限于此的特点: 1.按照Transact-SQL的语法语义风格来设计,只 ...

  2. 超轻量级高性能ORM数据访问组件Deft,比dapper快20%以上

    超轻量级高性能ORM数据访问组件Deft,比dapper快20%以上 阅读目录 Deft简介 Deft 核心类介绍 Deft 3分钟即可上手使用 其他可选的配置参数 性能测试 Demo代码下载 回到顶 ...

  3. spring boot实现超轻量级网关(反向代理、转发)

    在我们的rest服务中,需要暴露一个中间件的接口给用户,但是需要经过rest服务的认证,这是典型的网关使用场景.可以引入网关组件来搞定,但是引入zuul等中间件会增加系统复杂性,这里实现一个超轻量级的 ...

  4. Asp反向代理程序,调用远程站点全站数据,一款脚本级反向代理程序.

    前些天临时写的一脚本级反向代理程序,用法很简单,设置好目标站地址,然后放到你网站根目录:index.asp,再将404页面自定义为:index.asp,即可. 由于暂时没有 url 替换需要,所以没有 ...

  5. python批量解析域名a记录

    #encoding:utf-8 import requests import json import dns.resolver import sys reload(sys) sys.setdefaul ...

  6. 基于Groovy+HttpRestful的超轻量级的接口测试用例配置的设计方案及DEMO实现

    目标 设计一个轻量级测试用例框架,接口测试编写者只需要编写测试用例相关的内容(入参及结果校验),不需要理会系统的实现,不需要写跟测试校验无关的内容. 思路 测试用例分析 一个用例由以下部分组成: (1 ...

  7. Uboot中start.S源码的指令级的详尽解析

    Uboot中start.S源码的指令级的详尽解析 https://www.crifan.com/files/doc/docbook/uboot_starts_analysis/release/html ...

  8. 跨平台移动开发 Xuijs超轻量级的框架 Dom与Event简洁代码实现文本展开收起

    Dom与Event简洁代码实现文本展开收起 Xuijs超轻量级的框架 Dom与Event实现文本展开收起 效果图 示例代码 <!DOCTYPE html PUBLIC "-//W3C/ ...

  9. 跨平台移动开发 Xuijs超轻量级的框架+Emile CSS动画

    Xuijs超轻量级的框架+Emile CSS动画效果图 示例代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional// ...

随机推荐

  1. .NetCore(.NET6)中使用swagger和swagger版本控制

    一..NET6中使用swagger swagger支持 API 自动生成同步的在线文档,下面在.NET6中引入 1.建.NET6应用并建以下控制器 /// <summary> /// 订单 ...

  2. Java如何实现定时任务?

    我是3y,一年CRUD经验用十年的markdown程序员‍常年被誉为优质八股文选手 挺早就规划了要引入分布式定时任务框架了,在年前austin就已经接入了,但代码过年一直都没写,文章也就一直拖到今天了 ...

  3. C 上楼梯 中国石油大学新生训练赛#11

    问题 C: 上楼梯 时间限制: 1 Sec  内存限制: 128 MB提交 状态 题目描述 明明上n 级台阶可用四种步幅, 当然每种步幅花费的体力也不一样, 对应关系如下明明开始有m 个体力, 求他最 ...

  4. web测试知识点整理

    web是如何测试的? 1. 通用功能测试和可用性测试 2. 性能测试和安全性测试 3. 兼容性测试 4. 数据库和稳定性测试等 web功能测试怎么测? 从一下几个方面来进行WEB测试: 1. 链接测试 ...

  5. automake的使用1

    安装命令: sudo apt install automake autoconfig 简单的例子 automake实例: helloworld.c #include <stdio.h> # ...

  6. 面试之Java String 编码相关

    实话说,作为一个多年Java老年程序员,直到近来,在没有决心花时间搞清楚Java String的编码相关问题之前, 自己也都还是似懂非懂,一脸懵逼的.设想如果在面试中,有同学能够条理清晰的回答下面的问 ...

  7. idea 下 Vue

    一.需要了解的基本知识 node.js Node.js是一个Javascript运行环境(runtime),发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装.N ...

  8. 我对arguments.callee的理解

    基本理解: 你怎么看待一个函数呢?又如何看待一个函数对象呢?函数和Function之间的关系到底是什么?我觉得理解这些对理解arguments.callee有所帮助. 先说说auguments.cal ...

  9. int 和 Integer 有什么区别?

    Java 是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本 数据类型,但是为了能够将这些基本数据类型当成对象操作,Java 为每一个基本 数据类型都引入了对应的包装类型(wrappe ...

  10. 解释 Spring 框架中 bean 的生命周期?

    Spring 容器 从 XML 文件中读取 bean 的定义,并实例化 bean. Spring 根据 bean 的定义填充所有的属性. 如果 bean 实现了 BeanNameAware 接口,Sp ...