Как я могу определить, является ли папка Outlook общедоступной? - PullRequest
3 голосов
/ 15 декабря 2010

Мне нужен способ определить, является ли папка Outlook общедоступной.Я подозреваю, что есть какое-то свойство Microsoft.Office.Interop.Outlook, которое позволит мне это сделать, но я не могу его найти.

Ответы [ 2 ]

1 голос
/ 18 мая 2011

Если вы можете получить доступ к интерфейсу IMsgStore, связанному с рассматриваемой папкой (извините, не знаю, как это сделать с чистым C # - я рекомендую Redemption ), вы можете запросить свойство PR_MDB_PROVIDER чтобы увидеть, является ли это pbExchangeProviderPublicGuid.

Обновление на основе вашего комментария к ответу КГ:

Если вы хотите отфильтровать контакты, которые находятся в вашем основном почтовом ящике, просто сравните их StoreID с адресом вашей папки входящих сообщений по умолчанию - или просто не перечисляйте папки из каких-либо других хранилищ для начала.

0 голосов
/ 10 февраля 2011

Что вам нужно, так это веб-служба Exchange, в частности операция FindFolder (см. здесь или здесь для некоторых описаний MSDN).

Хотя, судя по всему, нет конкретного свойства, определяющего, является ли папка "общедоступной", как упоминает @RedDeckWins.

UPDATE

Если вам не требуется специально использовать для этого управляемый C #, вы можете использовать командлеты Powershell Exchange (см. Здесь здесь ). В частности, эта команда может быть полезна:

Get-PublicFolder -Recurse | Format-List Name

Powershell довольно прост в использовании, но его также можно вызывать из C #, если на нем установлен сервер, на котором выполняется ваш код (что должно быть для большинства современных систем).

Если вы ARE ограничены C #, взгляните на этот вопрос StackOverflow: Список адресов электронной почты для общих папок в обмен

...