2012-02-14 2 views
3

Может ли кто-нибудь предоставить мне образец .NET (C#/VB), как получить все почтовые ящики, к которым у меня есть доступ?Получите ВСЕ почтовые ящики через EWS (Exchange WebServices) - не мои собственные, а также общие и групповые почтовые ящики

Я получил только мой почтовый ящик OWN через EWS - не ВСЕ ДРУГИЕ почтовые ящики, к которым у меня также есть доступ через Outlook.

У меня нет имен или идентификаторов этих почтовых ящиков, но не удается ли восстановить ВСЕ почтовые ящики, в том числе мои собственные, - что мне разрешено видеть - как я могу в Outlook?

Я использую Автообнаружение, чтобы получить свой почтовый ящик следующим образом: service.AutodiscoverUrl("[email protected]") - это, возможно, будет иметь только мой собственный почтовый ящик и не все остальное?

Помогите!

+0

'Autodiscover' только применяется, когда речь идет о поиске вашего хоста Exchange - это не имеет ничего общего с доступом к почтовому ящику или разрешение. Как Outlook знает о том, к каким почтовым ящикам вы имеете доступ, - добавили ли вы их или как Outlook узнал о них? – SliverNinja

ответ

2

Способ, которым я обходился, состоял в том, чтобы определить почтовый ящик группы в качестве объекта «почтовый ящик», а затем получить FolderID для конкретной папки.

  1. Определение объекта почтового ящика

    Mailbox gpmailbox = new Mailbox("[email protected]"); 
    
  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); 
    

Ключом является захват FolderID нужной папки. Надеюсь это поможет.

Редактировать: Я также не заметил, что мой объект «hookToServer» - это просто объект ExchangeService. Вот как я определил его:

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

Я также использовал это в качестве справки: EWS 2007 Group Mailbox Guide