ruby - 使用 Ruby 处理 PST

标签 ruby email eml pst msg

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

这是一项正在进行的工作,我必须在进行过程中熟悉 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“名称”并将其分配给变量以解决此问题,或者是否有另一种方法可以卸载我不知道的 pst 文件?

最佳答案

尝试使用数组方法

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

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

关于ruby - 使用 Ruby 处理 PST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10600647/

相关文章:

javascript - 更改 EJS 模板目录

mysql - attr_encrypted 和加密由 date_select 表单助手生成的日期

python——将电子邮件附件抓取到磁盘?

gmail - 将 .eml 导入我的 Gmail 收件箱的 Google Apps 脚本

java - 如何使用 javamail 从 .eml 文件读取多封电子邮件

c# - 发送保存在磁盘上的 eml 文件

python - 什么是 Python 的 "zip"内置的 Ruby 等价物?

ruby - 为什么我在 ruby​​ 中使用 while 和 until 得不到相同的结果?

linux - DKIM key 无效 - RSA 签名错误

php - 无法使用给定的 codeigniter : parameter 1 expect to be string, 数组发送电子邮件