我需要一种方法来确定Outlook文件夹是否公开。我怀疑有一些财产Microsoft.Office.Interop.Outlook,将允许我这样做,但我找不到它。如何确定Outlook文件夹是否公开?
回答
你想要什么是Exchange Web服务,特别是FindFolder操作(有关某些MSDN描述,请参阅here或here)。
虽然从它的外观来看,没有识别文件夹是否为“公共”的特定属性,例如@RedDeckWins提及。
UPDATE
如果您不是专门使用托管C#为此所需,您可以使用PowerShell的交易所的cmdlet(检查了这一点here)。具体而言,该命令可能会有所帮助:
Get-PublicFolder -Recurse | Format-List Name
PowerShell是很容易通过自身使用,但它也可以从C#调用,如果有它安装在你的代码上运行的服务器(对于大多数现代盒子,应该)。
如果仅限于C#,看看这个StackOverflow的问题:List of email address to public folders in exchange
我想列举文件夹并拉出联系人,但只是本地的,而不是交换服务器上的联系人。看起来很奇怪,我无法找到一个很好的方法来确定当我通过它们枚举时,交换服务器上的联系人是本地还是远程的。 – 2011-02-10 16:47:39
查看我的更新。你仅限于C#,还是可以使用Powershell? Exchange中包含的工具可能会对此有所帮助。 – karlgrz 2011-02-10 17:02:58
@Greg:查看我的答案的更新:如果您只想要主邮箱内的联系人文件夹(*不是公用的邮箱),只需比较其“StoreID”或将搜索限制在本地商店即可。 – 2011-06-06 11:32:06
如果你能在与文件夹中的问题相关的IMsgStore
接口得到(对不起,不知道该怎么做,与纯粹的C# - 我推荐Redemption)你可以查询PR_MDB_PROVIDER
属性来查看它是否为pbExchangeProviderPublicGuid
。基于对KG的回答您的评论
更新:
如果要过滤掉你的主邮箱里面的联系人,只需用您的默认收件箱文件夹的比较他们StoreID
- 或者干脆别列举来自任何其他商店的文件夹。
- 1. 确定文件夹是否存在?
- 2. 连接Outlook 2010公用文件夹
- 3. 如何确定给定路径是文件还是文件夹?
- 4. 如何确定指定文件是否放置在指定文件夹内?
- 5. 如何确定文件夹是否嵌套在SharePoint列表中
- 6. 如何确定文件夹是否已存在于innosetup
- 7. 确定文件是否打开
- 8. 如何确定Windows中是否打开特定文件?
- 9. 确定文件夹是否在文件路径中
- 10. 如何确定“投递文件夹”中的文件是否完全传输
- 11. 如何确定文件是否是Eclipse中的文本文件
- 12. 确定Outlook文件夹中电子邮件的大小?
- 13. 如何确认我从文件夹中解压缩的文件是否正确
- 14. 如何确定给定文件是否为xml valide文件
- 15. 是否可以打开多文件夹?
- 16. 如何确定Outlook是否有任何联系
- 17. Outlook 2007如何决定是否应将电子邮件重定向到垃圾邮件文件夹?
- 18. SaveSentMessageFolder到网络文件夹(而不是Outlook文件夹)
- 19. Outlook文件夹自定义UI
- 20. 如何删除Rails公用文件夹中的特定文件?
- 21. 如何识别是否打开文件夹?
- 22. 外部应用程序:检查是否Outlook文件夹存在
- 23. 确定文件夹是否在.NET中共享
- 24. 快速确定文件夹内容是否已被修改
- 25. 如何确定用户是否选择文件上传文件?
- 26. 确定是否打开NSMenu
- 27. 如何确定文件是否以二进制或文本模式打开?
- 28. 如何确定在Outlook
- 29. 如何确定一个对象是一个文件还是一个文件夹
- 30. 如何打开文件夹?
Outlook文件夹似乎没有“公共”属性,但它们具有权限。那是你的追求? – 2010-12-14 21:48:41
公用文件夹是交换事物。不确定Outlook OM是否允许您访问它。我确信EWS(Exchange Web服务)允许访问公共文件夹。 – RedDeckWins 2010-12-16 07:28:40