通过EWS(Exchange WebServices)获取所有邮箱 - 不是我自己的邮箱,也是共享和组邮箱

时间:2012-02-14 12:18:01

标签: directory exchangewebservices

任何人都可以向我提供如何获取我有权访问的所有邮箱的.NET(C#/ VB)示例吗?

我只能通过EWS获取我的OWN邮箱 - 而不是我通过Outlook也可以访问的所有其他邮箱。

我没有这些邮箱的名称和ID,但是我不能检索所有邮箱 - 包括我自己 - 我可以看到 - 就像我在Outlook中一样?

我正在使用自动发现来获取我的邮箱:service.AutodiscoverUrl("xxxx@ee.dd") - 这可能只会获取我自己的邮箱,而不是所有其他邮箱?

请帮忙!?

1 个答案:

答案 0 :(得分:2)

我解决这个问题的方法是将有问题的组邮箱定义为“邮箱”对象,然后获取特定文件夹的FolderID。

  1. 定义邮箱对象

    Mailbox gpmailbox = new Mailbox("mailbox@yourdomainname.com");
    
  2. 获取FolderID(在本例中为收件箱)

    FolderId gpInbox = new FolderId(WellKnownFolderName.Inbox, gpmailbox);
    
  3. 在普通代码中使用FolderID(在这种情况下,我正在获取100条消息)

    ItemView view = new ItemView(100);        
    FindItemsResults<Item> results = hookToServer.FindItems(new FolderId(WellKnownFolderName.Inbox, gpmailbox), view);
    
  4. 关键是获取所需文件夹的FolderID。希望这可以帮助。

    编辑:我也没注意到我的对象“hookToServer”只是ExchangeService对象。以下是我如何定义它:

            ExchangeService hookToServer = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
            hookToServer.UseDefaultCredentials = true;
            hookToServer.Url = new Uri("TheExchangeServer")
    

    我也用它作为参考: EWS 2007 Group Mailbox Guide