2009-05-19 95 views

回答

0

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

+1

这给了我一个很长的路要走的想法: pst - > google - > imap - > mysql – 2009-05-20 00:59:30

8

是的。也许最简单的是在Outlook中打开您的PST,并使用

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

这将创建一个CSV文件,您可以通过随后的mysqlimport 到MySQL。

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

+1

我爱多么简单这似乎是,但它会支持附件? – 2009-05-20 00:58:22

0

我将会用C#编写的自动化客户端进行迭代通过Outlook电子邮件,然后将每个上传到您的数据库。这些东西都不是火箭科学。自动化客户端需要在计算机上安装并运行Outlook。换句话说,这种方法不涉及“阅读”PST;自动化意味着Outlook应用程序实际上正在运行,您的代码要求应用程序单独打开电子邮件。 (当你这样做时,你不需要显示所有的用户界面)。

以下是关于how to read a PST file by automating outlook using C#的问题。从那开始,你需要添加MySQL更新的东西,以及一些很好的错误处理。从Outlook删除文件之前,务必彻底测试。如果你选择不删除,一定要有一个好的索引方法来确保幂等性。

0

Powershell可能对此有好处?一个文件夹中如枚举电子邮件,创建SQL INSERT每个,追加插入批量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 
0

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

显然还有在处理一个有些水暖的转换后的格式转换为SQL,但如果导入到Outlook中,然后以CSV格式导出不是一种选择,则libpst将是一个不错的选择。

0

在那里做的是:)

啊libpst +库尔斯光的6组是在这里你的解决方案:)

像Cheeso说,不是火箭科学。倾倒在一张大桌子上,但如何处理附件是我挣扎一点的地方。第一次迭代最终在磁盘上进行了倾倒,并将路径标记为“东西”。

迭代2,设置一个小的Hadoop实例并将整个shebang加载到Hbase中。我有600GB的电子邮件...小强迫症,但伟大的工作日:) :)

相关问题