使用Ruby进行PST处理

时间:2012-05-15 12:27:45

标签: ruby email eml pst msg

我正在编写一些代码来提取有关PST文件内容的信息,例如总邮件,子文件夹列表,每个文件夹的邮件数,电子邮件主题名称以及每封邮件的发送/接收日期。< / p>

这是一项正在进行的工作,我不得不熟悉Ruby / Outlook / MAPI。

我正在使用以下代码段在Windows中工作,以了解我如何访问PST内容:

#Create outlook instance
outlook = WIN32OLE.new('Outlook.Application')
#Create mapi control
mapi = outlook.GetNameSpace('MAPI')
outlook.Session.AddStore('C:/test.pst')
#pst = mapi.Folders.Item('Personal Folders')
#puts pst.Items.count
#mapi.RemoveStore(pst)

虽然我可以通过文件名添加pst文件,但为了删除它,我需要知道在outlook中分配给该文件的名称是什么。这很好如果我手动处理Outlook,但我希望自动运行。

有没有办法可以在加载后提取并将pst'name'分配给变量以解决此问题,还是有另一种方法来卸载我不知道的pst文件?

1 个答案:

答案 0 :(得分:0)

尝试使用数组方法

outlook.Session.AddStore('C:/test.pst')
mapi.RemoveStore(mapi.Folders.Item.last)

另一个选项是在添加之前迭代mapi.Folders。 然后遍历after并找到映射的新“Item”名称,然后将其删除。