如何确定Outlook文件夹是否公开?

时间:2010-12-14 21:29:44

标签: c# .net outlook outlook-object-model

我需要一种方法来确定Outlook文件夹是否公开。我怀疑有一些属性Microsoft.Office.Interop.Outlook将允许我这样做,但我找不到它。

2 个答案:

答案 0 :(得分:1)

如果您可以访问与相关文件夹关联的IMsgStore界面(抱歉,不知道如何使用纯C#执行此操作 - 我建议Redemption)您可以查询{{1} } property以查看它是否为PR_MDB_PROVIDER

根据您对KG答案的评论

更新

如果要过滤掉主邮箱中的联系人,只需将他们的pbExchangeProviderPublicGuid与默认收件箱文件夹中的联系人进行比较 - 或者只是不要从任何其他商店开始枚举文件夹。< / p>

答案 1 :(得分:0)

您想要的是Exchange Web服务,特别是FindFolder操作(有关某些MSDN说明,请参阅herehere)。

虽然从外观来看,没有特定属性可以识别文件夹是否为“公共”,如@RedDeckWins所提到的。

<强>更新

如果您没有特别要求使用托管C#,则可以使用Powershell Exchange Cmdlet(请查看here)。具体来说,此命令可能会有所帮助:

Get-PublicFolder -Recurse | Format-List Name

Powershell本身很容易使用,但也可以从C#中调用它,如果你的代码运行的服务器安装了它(对于大多数现代的盒子,它应该)。

如果您 限于C#,请查看此StackOverflow问题:List of email address to public folders in exchange