2012-02-14 3 views
3

누구든지 내가 액세스 할 수있는 모든 사서함을 가져 오는 방법에 대한 .NET (C#/VB) 샘플을 제게 제공 할 수 있습니까?EWS (Exchange WebServices)를 통해 모든 사서함 가져 오기 - 내 소유가 아닌 공유 및 그룹 사서함

저는 OWN 사서함을 EWS를 통해서만 가져올 수있었습니다. Outlook을 통해 액세스 할 수있는 다른 모든 사서함은 사용할 수 없었습니다.

나는이 사서함의 이름이나 ID를 가지고 있지 않지만 볼 수있는 모든 사서함을 검색 할 수있는 것은 아닙니다 (Outlook에서 할 수있는 것처럼)?

내 사서함을 얻으려면 Autodiscover를 사용하고 있습니다 : service.AutodiscoverUrl("[email protected]") - 아마도 내 사서함 만 가져오고 나머지는 모두 가져올 수 없습니까?

도와주세요!

+0

'하여 Exchange 호스트의 위치에 대해 이야기 할 때 Autodiscover'에만 적용 - 그것은 사서함 액세스 또는 해상도와는 아무 상관이있다. 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

관련 문제