NameSpace.Logon 方法 (Outlook)

使用户登录到 MAPI,获取 MAPI 会话。

语法

expressionLogon( _Profile_ , _Password_ , _ShowDialog_ , _NewSession_ )

表达 一个代表 NameSpace 对象的变量。

参数

名称 必需/可选 数据类型 说明
个人资料 可选 Variant MAPI 配置文件名称,作为 字符串 ,用于会话。 指定要用于当前会话的默认配置文件为空字符串。
Password 可选 Variant 密码 (如果有的话),作为一个 字符串 ,与配置文件相关联。 此参数存在仅用于向后兼容性和出于安全原因,建议不要使用。 Microsoft Outlook 将提示用户在大多数系统配置中指定密码。 这是您的登录密码,不应该混淆与 PST 密码。
ShowDialog 可选 Variant True 指示显示的 MAPI 登录对话框,以允许用户选择的 MAPI 配置文件。
NewSession 可选 Variant 若要创建新的 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方法在不提示用户的情况下,默认配置文件登录,用户将收到提示仍选择一个配置文件。 若要避免此行为,请不要使用 Logon 方法;请改用前面 InitializeMAPI 示例中建议的解决方法。

示例

此示例的 Visual Basic for Applications 使用 登录 方法登录到新的会话,显示对话框来验证的配置文件名称,并输入密码。

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

另请参阅

命名空间对象

如何︰ 获取和登录到 Outlook 实例

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。