【问题标题】:Outlook Interop: how to get deleted items folder or trash folder for each of the accountsOutlook 互操作:如何获取每个帐户的已删除项目文件夹或垃圾文件夹
【发布时间】:2015-03-02 15:20:40
【问题描述】:

我正在尝试获取 Outlook 中所有邮件帐户的所有 已删除邮件垃圾箱 文件夹。我在 C# 中使用 Outlook Interop,但我只能在 MSDN 上的默认邮件帐户中找到获取已删除项目文件夹的方法:Application.Session.GetDefaultFolder(OlDefaultFolders.olFolderDeletedItems)

有人知道我是否可以在 Outlook 的每个电子邮件帐户中获取已删除项目文件夹?

【问题讨论】:

  • 这些是交易所账户吗?

标签: c# outlook-addin


【解决方案1】:

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

【讨论】:

  • 只有在它们都在同一个 Outlook 配置文件中时才有效。如果他们在不同的个人资料上,事情就必须要有创意。
  • OP 没有提到关于多个配置文件的任何内容,所以我假设所有商店都在同一个配置文件中。
  • 我刚刚意识到我的组件需要支持 Outlook 2007,它在 Store 界面中没有 GetDefaultFolder 方法。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2016-10-15
    • 2017-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多