Метод NameSpace.GetSharedDefaultFolder возвращает объект Folder
, представляющий указанную папку по умолчанию для указанного пользователя.Например, пример VBA (объектная модель Outlook является общей для всех языков программирования):
Sub ResolveName()
Dim myNamespace As Outlook.NameSpace
Dim myRecipient As Outlook.Recipient
Dim CalendarFolder As Outlook.Folder
Set myNamespace = Application.GetNamespace("MAPI")
Set myRecipient = myNamespace.CreateRecipient("Eugene Astafiev")
myRecipient.Resolve
If myRecipient.Resolved Then
Call ShowCalendar(myNamespace, myRecipient)
End If
End Sub
Sub ShowCalendar(myNamespace, myRecipient)
Dim CalendarFolder As Outlook.Folder
Set CalendarFolder = myNamespace.GetSharedDefaultFolder(myRecipient, olFolderCalendar)
CalendarFolder.Display
End Sub
Также, если вы уже добавили в Outlook вторую учетную запись, вы можете рассмотреть возможность использования Stores свойство класса Namespace
, которое возвращает объект коллекции Stores
, представляющий все объекты `Store`` в текущем профиле.В статье Работа с учетными записями, магазинами, папками и элементами Outlook приведен пример кода для работы с несколькими хранилищами и папками.Например:
$Outlook = New-Object -ComObject Outlook.Application
$OutlookInbox = $Outlook.session.Stores(1).GetDefaultFolder(6)
$TotalEmailCount = $OutlookInbox.Items.Count
$TotalEmailCount
Можно ли запустить сценарий powershell на сервере, если сценарий выполняется как пользователь домена, являющийся локальным администратором?
Outlook долженбыть установлен на машине, где вы хотите запустить скрипт.
В настоящее время Microsoft не рекомендует и не поддерживает автоматизацию приложений Microsoft Office из любых необслуживаемых, неинтерактивных клиентских приложений или компонентов (включая ASP, ASP.NET, DCOM и NT Services), поскольку Officeможет работать нестабильно и / или зависать при запуске Office в этой среде.
Если вы создаете решение, работающее в контексте на стороне сервера, вы должны попытаться использовать компоненты, которые были безопасны для автоматического управления.выполнение.Или вы должны попытаться найти альтернативы, которые позволяют хотя бы части кода работать на стороне клиента.Если вы используете приложение Office из серверного решения, приложению не хватит многих необходимых возможностей для успешной работы.Кроме того, вы будете рисковать стабильностью вашего общего решения.Подробнее об этом читайте в статье Рекомендации для серверной автоматизации Office .Возможные альтернативы:
- Веб-службы Exchange, см. Начало использования веб-служб в Exchange
- Расширенный MAPI
- Любые другие сторонние компонентыпредназначен для исключения на стороне сервера.