Outlook 互操作:如何获取每个帐户的已删除邮件文件夹或垃圾箱文件夹



我正在尝试获取Outlook中所有邮件帐户的所有已删除邮件废纸篓文件夹。我在 C# 中使用 Outlook 互操作,但我只能找到在 MSDN 上的默认邮件帐户中获取已删除邮件文件夹的方法:Application.Session.GetDefaultFolder(OlDefaultFolders.olFolderDeletedItems)

有谁知道是否有办法在Outlook中的每个电子邮件帐户中获取已删除邮件文件夹?

遍历Namespace.Stores集合并调用Store.GetDefaultFolder(olFolderDeletedItems)而不是Namespace.GetDefaultFolder

为了响应您在对 Dmitry 的回答中添加的"应该在 Outlook 2007 上工作"要求,我建议采用以下方法:

  1. 使用PropertyAccessor获取商店的PR_IPM_WASTEBASKET_ENTRYID("http://schemas.microsoft.com/mapi/proptag/0x35E30102")
  2. 使用PropertyAccessor.BinaryToString将其转换为可在 COM/互操作层中使用的条目 ID
  3. 使用 NameSpace.GetItemFromID 访问已删除邮件文件夹文件夹,给定它的 EntryID 和存储的 EntryID。

最新更新