2010-12-14 9 views
3

Outlook 폴더가 공개되어 있는지 확인하는 방법이 필요합니다. Microsoft.Office.Interop.Outlook을 통해 일부 기능을 사용할 수 있습니다. 그러나이 기능을 사용할 수는 없지만 찾을 수는 없습니다.Outlook 폴더가 공용 폴더인지 여부를 어떻게 확인할 수 있습니까?

+0

Outlook 폴더에는 "공용"속성이없는 것 같지만 사용 권한이 있습니다. 그게 네가 쫓아 온거야? –

+2

공용 폴더는 교환 대상입니다. Outlook OM에서 액세스 할 수 있는지 여부는 확실하지 않습니다. 나는 EWS (Exchange Web Service)가 공용 폴더에 대한 액세스를 허용한다는 것을 알고 있습니다. – RedDeckWins

답변

0

원하는 것은 Exchange Web Service, 특히 FindFolder 작업입니다 (일부 MSDN 설명은 here 또는 here 참조).

외모에 따르면 @RedDeckWins와 같이 폴더가 "public"인지 여부를 식별하는 특정 속성이 없습니다.

UPDATE 당신이 특별히 이것에 대한 관리 C 번호를 사용할 필요가 없습니다 경우

, 당신은 파워 쉘 교환 사람 cmdlet은 (here를이 체크 아웃)를 사용할 수 있습니다. 특히,이 명령은 도움이 될 수 있습니다

Get-PublicFolder -Recurse | Format-List Name 

PowerShell을 자체적으로 사용하기 아주 쉽게,하지만 코드가 실행되고있는 서버가 설치되어있는 경우도 (C 번호에서 호출 할 수있는 대부분의 현대에 대한 상자,해야한다).

당신이 C#을 제한하는 경우,이 StackOverflow의 질문에 대해 살펴 걸릴 : 당신은 (문제의 폴더와 관련된 IMsgStore 인터페이스에서 얻을 수있는 경우 List of email address to public folders in exchange

+0

나는 폴더를 열거하고 연락처를 꺼내기를 원하지만 Exchange 서버의 연락처가 아니라 로컬 연락처 만 가져 오려고합니다. 내가 그들을 열거 할 때 연락처가 로컬 또는 원격 Exchange 서버에 있는지 확인하는 좋은 방법을 찾을 수 없다는 것이 이상하게 보입니다. –

+0

내 업데이트를 참조하십시오. C#으로만 제한 되었습니까? 아니면 Powershell을 사용할 수 있습니까? Exchange에 포함 된 도구가 크게 도움이 될 수 있습니다. – karlgrz

+0

@ 그렉 : 내 답변에 대한 업데이트보기 : 주소록 폴더를 기본 편지함 (* 공개 *가 아닌 *)에만 넣으려면 'StoreID'를 비교하거나 단순히 검색을 로컬 저장소로 제한하십시오. –

1

죄송합니다, 아무 생각하는 방법과 그렇게 없음을 순수한 C# - Redemption 권장) pbExchangeProviderPublicGuid인지 확인하기 위해 PR_MDB_PROVIDER 속성을 쿼리 할 수 ​​있습니다. KG의 대답에 귀하의 코멘트에 따라

업데이트 :

그냥 기본받은 편지함 폴더의 자신의 StoreID 비교, 기본 사서함 내부에있는 연락처를 필터링 할 경우 - '돈 단순히 또는 다른 상점의 폴더를 열거합니다.

관련 문제