我需要一种方法来确定Outlook文件夹是否公开。我怀疑有一些属性Microsoft.Office.Interop.Outlook将允许我这样做,但我找不到它。
答案 0 :(得分:1)
如果您可以访问与相关文件夹关联的IMsgStore
界面(抱歉,不知道如何使用纯C#执行此操作 - 我建议Redemption)您可以查询{{1} } property以查看它是否为PR_MDB_PROVIDER
。
更新:
如果要过滤掉主邮箱中的联系人,只需将他们的pbExchangeProviderPublicGuid
与默认收件箱文件夹中的联系人进行比较 - 或者只是不要从任何其他商店开始枚举文件夹。< / p>
答案 1 :(得分:0)
您想要的是Exchange Web服务,特别是FindFolder操作(有关某些MSDN说明,请参阅here或here)。
虽然从外观来看,没有特定属性可以识别文件夹是否为“公共”,如@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