如何将Outlook .pst文件中的电子邮件转储到MySQL数据库中?

时间:2009-05-19 23:25:45

标签: mysql outlook export

获取Outlook pst文件并将所有电子邮件导出到MySQL数据库的最简单方法是什么?

6 个答案:

答案 0 :(得分:8)

让人惊讶。可能最简单的方法是在Outlook中打开你的PST,并使用

File->Import and Export, Export to a File, Comma Seperated Values (Windows)

这将创建一个 CSV文件,然后您可以通过 mysqlimport 将其拉入MySQL。

如果除了消息内容之外还需要更多信息,您需要通过各种外来手段直接进入商店。

答案 1 :(得分:0)

那边做过:)

是的libpst + 6包coors light是你的解决方案:)

像Cheeso说的那样,不是火箭科学。倾倒在一张大桌子上,但是如何处理附件是我挣扎的地方。第一次迭代最终转储到磁盘上并将路径列为" stuff"。

迭代2,设置一个小的Hadoop实例并在Hbase中加载整个shebang。我有600Gb的电子邮件......小小的OCD但是今天效果很好:)

答案 2 :(得分:0)

我偶然发现的一个解决方案是: libpst

显然,在将一种转换格式处理成SQL时仍然存在一些问题,但是如果导入到Outlook然后导出为CSV不是一种选择,libpst将是一个不错的选择。

答案 3 :(得分:0)

我不知道答案,但是,如果你看看谷歌电子邮件上传者(开源),他们会做阅读部分......

答案 4 :(得分:0)

我会在C#中编写一个自动化客户端来遍历outlook电子邮件,然后将每个客户端上传到您的数据库。这些东西都不是火箭科学。自动化客户端要求在计算机上安装并运行Outlook。换句话说,这种方法不仅仅涉及“读取”PST;自动化意味着Outlook应用程序实际上正在运行,您的代码要求应用程序单独打开电子邮件。 (您无需在执行此操作时显示所有UI)。

这是关于how to read a PST file by automating outlook using C#的问答。从那开始,您需要添加MySQL更新内容,以及一些良好的错误处理。在从Outlook中删除文件之前,请务必进行彻底测试。如果您选择不删除,请确保采用良好的索引方法来确保幂等性。

答案 5 :(得分:0)

Powershell可能对此有利吗?例如,在文件夹中枚举电子邮件,为每个创建sql插件,将插入附加到批处理sql脚本:

$olApp = New-Object -com Outlook.Application
$namespace = $olApp.GetNamespace("MAPI")
$folder = $namespace.GetDefaultFolder(1)
$folder.Items  | %{ 
    "insert into MyTable (MyCol1, MyCol2, etc) values ($_.Subject, $_.body, etc)"
} | out-file "outfile.sql" -Append