Поделиться через


Метод NameSpace.Logon (Outlook)

Выполняет вход пользователя в MAPI, получая сеанс MAPI.

Синтаксис

выражение. Logon( _Profile_ , _Password_ , _ShowDialog_ , _NewSession_ )

Выражение Переменная, представляющая объект NameSpace .

Параметры

Имя Обязательный или необязательный Тип данных Описание
Профиль Необязательный Variant Имя профиля MAPI в виде строки, используемое для сеанса. Укажите пустую строку, чтобы использовать профиль по умолчанию для текущего сеанса.
Password Необязательный Variant Пароль (при наличии) в виде строки, связанной с профилем. Этот параметр существует только для обратной совместимости и по соображениям безопасности не рекомендуется использовать. Microsoft Outlook предложит пользователю указать пароль в большинстве системных конфигураций. Это пароль для входа, который не следует путать с паролями PST.
Showdialog Необязательный Variant Значение true , чтобы отобразить диалоговое окно входа в MAPI, чтобы разрешить пользователю выбрать профиль MAPI.
NewSession Необязательный Variant Значение True для создания нового сеанса Microsoft Outlook. Так как в Outlook невозможно создать несколько сеансов, этот параметр следует указать как True только в том случае, если сеанс еще не существует.

Замечания

Используйте метод Logon только для входа в определенный профиль, если Outlook еще не запущен. Это связано с тем, что одновременно может выполняться только один процесс Outlook, и этот процесс Outlook использует только один профиль и поддерживает только один сеанс MAPI. Когда пользователи запускают Outlook во второй раз, этот экземпляр Outlook запускается в том же процессе Outlook, не создает новый процесс и использует тот же профиль.

Если Outlook уже запущен, этот метод не создает новый сеанс Outlook или не изменяет текущий профиль на другой.

Если Outlook не запущен и вы хотите запустить Outlook только с профилем по умолчанию, не используйте метод Logon . Более лучшая альтернатива показана в следующем примере InitializeMAPIкода: сначала создайте экземпляр объекта Приложения Outlook, а затем составьте ссылку на папку по умолчанию, например папку "Входящие". Это имеет побочный эффект инициализации MAPI для использования профиля по умолчанию и для полной функциональности объектной модели.

Sub InitializeMAPI ()

    ' Start Outlook.
    Dim olApp As Outlook.Application
    Set olApp = CreateObject("Outlook.Application")
    
    ' Get a session object. 
    Dim olNs As Outlook.NameSpace
    Set olNs = olApp.GetNamespace("MAPI")
    
    ' Create an instance of the Inbox folder. 
    ' If Outlook is not already running, this has the side
    ' effect of initializing MAPI.
    Dim mailFolder As Outlook.Folder
    Set mailFolder = olNs.GetDefaultFolder(olFolderInbox)

    ' Continue to use the object model to automate Outlook.
End Sub

Начиная с Outlook 2010, если у вас несколько профилей, вы настроили Outlook всегда использовать профиль по умолчанию, и вы используете метод Входа для входа в профиль по умолчанию, не запрашивая пользователя, пользователь в любом случае получит запрос на выбор профиля. Чтобы избежать такого поведения, не используйте метод Logon . вместо этого используйте обходной путь, предложенный в предыдущем InitializeMAPI примере.

Пример

В этом Visual Basic для приложений примере используется метод Logon для входа в новый сеанс, в котором отображается диалоговое окно для проверки имени профиля и ввода пароля.

Sub StartOutlook() 
    Dim myNameSpace As Outlook.NameSpace 
  
    Set myNameSpace = Application.GetNamespace("MAPI") 
    myNameSpace.Logon "LatestProfile", , True, True 
End Sub

См. также

Объект NameSpace

How to: Obtain and Log On to an Instance of Outlook

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.