获取Outlook pst文件并将所有电子邮件导出到MySQL数据库的最简单方法是什么?
答案 0 :(得分:8)
让人惊讶。可能最简单的方法是在Outlook中打开你的PST,并使用
File->Import and Export, Export to a File, Comma Seperated Values (Windows)
这将创建一个 CSV文件,然后您可以通过 mysqlimport 将其拉入MySQL。
如果除了消息内容之外还需要更多信息,您需要通过各种外来手段直接进入商店。
答案 1 :(得分:0)
我不知道答案,但是,如果你看看谷歌电子邮件上传者(开源),他们会做阅读部分......
答案 2 :(得分:0)
我会在C#中编写一个自动化客户端来遍历outlook电子邮件,然后将每个客户端上传到您的数据库。这些东西都不是火箭科学。自动化客户端要求在计算机上安装并运行Outlook。换句话说,这种方法不仅仅涉及“读取”PST;自动化意味着Outlook应用程序实际上正在运行,您的代码要求应用程序单独打开电子邮件。 (您无需在执行此操作时显示所有UI)。
这是关于how to read a PST file by automating outlook using C#的问答。从那开始,您需要添加MySQL更新内容,以及一些良好的错误处理。在从Outlook中删除文件之前,请务必进行彻底测试。如果您选择不删除,请确保采用良好的索引方法来确保幂等性。
答案 3 :(得分: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
答案 4 :(得分:0)
我偶然发现的一个解决方案是: libpst
显然,在将一种转换格式处理成SQL时仍然存在一些问题,但是如果导入到Outlook然后导出为CSV不是一种选择,libpst将是一个不错的选择。
答案 5 :(得分:0)
那边做过:)
是的libpst + 6包coors light是你的解决方案:)
像Cheeso说的那样,不是火箭科学。倾倒在一张大桌子上,但是如何处理附件是我挣扎的地方。第一次迭代最终转储到磁盘上并将路径列为" stuff"。迭代2,设置一个小的Hadoop实例并在Hbase中加载整个shebang。我有600Gb的电子邮件......小小的OCD但是今天效果很好:)