Outlook Interop访问共享日历中的已删除邮件文件夹



考虑以下场景:Sombody与我共享了一个日历。我可以完全访问此日历。当我删除日历中的项目时,Folder.BeforeItemMove事件将被激发。到目前为止还不错。我想通过检查MoveTo条目id是null还是有效的Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderDeletedItems)的条目id来跟踪删除。现在回到项目位于共享文件夹中的情况:

  • 根据文档,属性olFolderDeletedItems是GetSharedDefaultFolders()的禁止参数(只是为了确保我访问了允许使用的其他文件夹)
  • 我试着反复浏览Stores系列。没有日历
  • 我尝试访问MoveTo文件夹上的存储属性->null
  • 我尝试从会话获取存储(以检查PR_IPM_WASTEBASKET_ENTRYID)->失败
  • CAN获取文件夹名称问题是,它可能会被重命名和/或本地化,如果我无法控制,我不希望所有删除的文件夹名称都浮动在数组中
  • 我使用普通OOM或赎回文件夹接口测试了所有这些

有什么想法吗?

(在Outlook 2016中测试)

RDOStore.GetDefaultFolder(olFolderDeletedItems)RDOSession.GetSharedDefaultFolder(olFolderDeletedItems)都在Redemption中工作。

如果您可以以共享日历的形式访问日历(例如,通过OWA以电子邮件邀请的形式发送给您),则已删除的项目将转到您的已删除项目文件夹。这个你可以通过Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderDeletedItems)

如果日历在您个人资料中的第二个邮箱中,则已删除的项目将转到该帐户的已删除项目文件夹,您可以通过访问该文件夹

Outlook.Store _Store = MoveTo.Store;

Outlook.Folder _Folder = MoveTo.GetDefaultFolder (OlDefaultFolders.olFolderDeletedItems) as Outlook.Folder;

您可以通过检查Folder.Store是否为空(在共享非邮箱日历的情况下为空)来区分这两种情况

相关内容

  • 没有找到相关文章

最新更新