3

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

4

2 回答 2

1

如果您可以访问与IMsgStore相关文件夹关联的界面(抱歉,不知道如何使用纯 C# - 我推荐Redemption),您可以查询该PR_MDB_PROVIDER属性以查看它是否为pbExchangeProviderPublicGuid.

根据您对 KG 答案的评论进行更新:

如果您想过滤掉主邮箱中的联系人,只需将它们StoreID与您的默认收件箱文件夹中的联系人进行比较 - 或者干脆不要一开始就枚举来自任何其他商店的文件夹。

于 2011-05-18T10:23:34.000 回答
0

您需要的是 Exchange Web 服务,特别是 FindFolder 操作(有关 MSDN 的一些说明,请参见此处此处)。

尽管从外观上看,没有特定的属性可以识别文件夹是否为“公共”,就像@RedDeckWins 提到的那样。

更新

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

Get-PublicFolder -Recurse | Format-List Name

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

如果您仅限于 C#,请查看这个 StackOverflow 问题:List of email address to public folder in exchange

于 2011-02-10T00:30:04.323 回答