C# 检索MailItem的StoreID(在Outlook选项中)
我需要遍历a中的项目,并读取它们的C# 检索MailItem的StoreID(在Outlook选项中),c#,c#-4.0,outlook,vsto,outlook-2003,C#,C# 4.0,Outlook,Vsto,Outlook 2003,我需要遍历a中的项目,并读取它们的EntryID和StoreID值,以便以后能够再次检索邮件项目(通过赎回进行后台处理)。有没有办法直接检索邮件项目的存储ID 我知道可以通过其父文件夹的属性检索它;但是,这似乎效率很低,因为它必须为每个项目的父文件夹实例化(并释放)COM对象。有没有更有效的方法来实现这一点 编辑:我无法使用该属性,因为它仅在Outlook 2007中引入,我需要支持Outlook 2003。此外,缔约国: Selection的Parent对象将是一个Explorer,因此您可以
EntryID
和StoreID
值,以便以后能够再次检索邮件项目(通过赎回进行后台处理)。有没有办法直接检索邮件项目的存储ID
我知道可以通过其父文件夹
的属性检索它;但是,这似乎效率很低,因为它必须为每个项目的父文件夹实例化(并释放)COM对象。有没有更有效的方法来实现这一点
编辑:我无法使用该属性,因为它仅在Outlook 2007中引入,我需要支持Outlook 2003。此外,缔约国:
Selection
的Parent
对象将是一个Explorer
,因此您可以使用Selection.Parent.CurrentFolder.Store
但是,当对“所有Outlook项目”执行搜索时,CurrentFolder
似乎总是指向主存储中的搜索文件夹,通常是Exchange邮箱:
\\Mailbox - <username>\search folders\All Outlook Items
\\Mailbox-\search folders\All Outlook项目
由于搜索可能与其他存储中的项目匹配,因此
CurrentFolder.Store
不一定与所选项目的存储相对应,这使得这种方法不可靠。您是否可以使用?而不是获取每个项目的父项来获取父项,你能用一次吗?我的目标是Outlook 2003;Selection.Parent
属性仅在Outlook 2007中引入。我不认为选择中的所有邮件项目总是共享一个公共存储ID
。例如,搜索可能会跨越多个门店。对-如果父级以多个门店为目标,您必须对每个商品使用,没有更有效的方法。好的,谢谢您的帮助。一旦我有足够的声誉,我会投票给你;Selection.Parent
属性仅在Outlook 2007中引入。我不认为选择中的所有邮件项目总是共享一个公共存储ID
。例如,搜索可能会跨越多个门店。对-如果父级以多个门店为目标,您必须对每个商品使用,没有更有效的方法。好的,谢谢您的帮助。一旦我有足够的声誉,我会投票给你。