添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

PST 文件是 OUTLOOK 个人文件夹文件,它是独立的、结构化的二进制文件,不需要任何的外部依赖。每一个PST文件代表一个消息存储器 message store ,包含有任意层次结构的文件对象 Folder objects ,下面又包含消息对象 Message objects ,消息对象下面又包含附件对象 Attachment objects 。文件对象、消息对象、附件对象都存储在属性中,包含有特定邮件项目的所有信息。

PST文件在逻辑上分为三层:the NDB (Node Database) layer, the LTP(Lists, Tables, and Properties) layer, and the Messaging layer.

1.  Node Database (NDB) Layer

NDB层代表数据库结点,是PST文件最低层的存储结构。NDB层包括 头部 (header) 、文件分配信息 (fileallocation information) 、块 (blocks) 、结点 (nodes) 、两颗 B : 结点 B 树和块 B (the Node BTree ( NBT )and the Block BTree ( BBT ).)

NBT包含了 指向 PST文件中所有可访问 结点 的指针,B树的高效搜索方式能够快速的定位任意结点。每一个结点由四个属性集组成: NID,parent NID, data BID (指向与该结点关联的数据块), and subnodeBID.

注:NID编号在整个PST文件里面是唯一的,可以查找NBT得到该结点。而 Subnode NID 只是在一个结点里面是唯一的,该节点不能从NBT查找得到。

BBT包含了指向PST文件中所有数据块的指针,每一个块也是由四个属性集组成: BID,IB, CB, and CREF

其中IB是该块在文件内的偏移量,CB是存储在该数据块内的字节数,CREF是该数据块的引用次数。

NBT and BBT树根的位置的都能从PST文件头部相关字段获得。如下图所示:

下图描述的结点(node)和块(block)之间的关系:

2. Lists, Tables, and Properties (LTP) Layer

LTP层是构建NDB结构顶部的一个高级概念,LTP层的核心元素是 属性上下文theProperty Context (PC) and 表上下文TableContext (TC) .每一个PC或TC也存放在一个单一的结点中,LTP层使用NIDS去标识PC和TC。

为了有效地实现PCs和TCs, LTP层在每个NDB节点顶层采用以下两种类型的数据结构。

Heap-on-Node(HN )

HN是在结点之上实现的一个堆数据结构,HN能够将一个结点的数据流细分为小的、大小可变的片段,它的主要用途是将各种字符串存储到数据块中。

BTree-on-Heap(BTH)

BTH是HN内部的一个数据结构。 HN 提供 快速访问 B- 的方法,而 BTH 提供一种 快速搜索数据 的方法。 PCs 就被实现为 BTHs

3.  Messaging Layer

The Messaginglayer包含有让LTB结构和NDB结构组合起来被解释为文件对象、消息对象、附件对象和属性的高级规则和业务逻辑。该层的规则使得修改后的PST文件能够被成功的读取。

PST 文件是 OUTLOOK 个人文件夹文件,它是独立的、结构化的二进制文件,不需要任何的外部依赖。每一个PST文件代表一个消息存储器message store,包含有任意层次结构的文件对象Folder objects,下面又包含消息对象Message objects,消息对象下面又包含附件对象Attachment objects。文件对象、消息对象、附件对象都存储在属性中,包含有特定邮件项
1、使用MAPI读取 PST 文件 ,需要mapi32.dll或msmapi32.dll或msoe.dll,这里以map32.dll为例。 2、(mpai_EnsureLibraries)载入map32.dll: LoadLibrary(path); 3、(mapi_EnsureStores(libpath)) 初始化 a)GetProcAddress(pHandle, "Fun...
pst sdk下载地址:https://archive.codeplex.com/?p= pst sdk 下载后,我们只需要取出 pst sdk目录,并自己进行dll封装,实现提取邮件内容、主题、收件人信息,把附件保存在一个目录下。利用VS2015进行调用该dll。 下载后,把新建一个 pst 目录,把头 文件 剪贴到原本的 pst sdk目录外边,新建 pst 目录 结构 如下: 要编译 pst sdk库,需要boos...
Net Pst Extractor 2.0: Outlook PST 文件 直接读取解析组件 for .Net ============================================================== ### 功能 - 直接读取解析 PST , OST 文件 . - 抽取邮件正文, 附件, 联系人, Lync聊天存档等信息. - 支持 Outlook 2003-2
PST A分析器 SIS2014/2015@FOI 任务:创建一个从 PST 文件 读取 电子邮件 的软件,分析它的数据(从、到、抄送、密件抄送、主题和内容)。 电子邮件 中需要全文搜索。 UI 允许按内容、发件人、收件人、主题搜索每封 电子邮件 ......显示给定时间段内的 电子邮件 并为每个人计算它们。 主要目标是在 PST 文件 中以图形方式显示发送方和接收方之间的连接。 项目仍处于开发阶段。 要运行应用程序,请在 Int ellij IDEA 中打开源代码( PST analyzerr 文件夹 )。 将项目 SDK 设置为 Java 1.8,将项目语言级别设置为 8 - Lambdas、类型注释等。将尽快提供自可执行的 jar 文件 。 如何使用应用程序: 应用程序启动后,选择 PST 文件 。 按“启动”按钮 分析 PST 文件 后(可能需要几分钟,具体取决于 文件 大小),打开 Web 浏览器,
摘录部分官网的说明 《Java开发手册》始于阿里内部规约,在全球Java开发者共同努力下,已成为业界普遍遵循的开发规范。 手册涵盖编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程规约、设计规约七大维度。 此次泰山版发布,将带来三大亮点:新增5条日期时间规约;新增2条表别名sql规约;新增统一错误码规约。 阿里在2016年12月7日首次向业界开放《Java开发手册》以来,获得了绝大部分开发者的认可,目前已经成为行业的事实标准。很多公司直接引 with open("eml 文件 的路径",'rb') as f: a=f.read() eml = eml_parser.eml_parser.decode_email_b(a,True,True) #decode...
使用 Microsoft Outlook 时, 电子邮件 、日历、任务和其他项目保存在邮件服务器或计算机上,或者同时保存在这两个位置。如果 Outlook 项目保存在计算机上,则它们保存在 Outlook 数据 文件 (. pst 和 .ost)中。 关于 Outlook 数据 文件 (. pst 和 .ost) Outlook 使用两种类型的 Outlook 数据 文件 Outlook 数据 文件 (...
今天开机收邮件,发现 outlook 出问题了,提示: outlook . pst 不是个人 文件夹 ,网上找了下,使用如下方法修复成功 可能 PST 文件 已经损坏,请使用专用工具修复,如scan pst .exe. office2007 scan pst .exe 文件 的位置:C:\Program Files\Microsoft Office\Office12\scan pst .exe Offic2003