Share via


Outlook) (NameSpace.Logon 方法

讓使用者登入 MAPI,取得 MAPI 作業階段。

語法

運算式Logon( _Profile_ , _Password_ , _ShowDialog_ , _NewSession_ )

表達 代表 NameSpace 物件的 變數。

參數

名稱 必要/選用 資料類型 描述
設定檔 選用 Variant MAPI 設定檔的名稱 (如 String) 用於作業階段。 指定空白字串,以便在目前作業階段中使用預設設定檔。
Password 選用 Variant 密碼 (如果有的話),如同 String,與設定檔相關。 此參數僅基於回溯相容性而存在,基於安全性考慮,不建議使用。 Microsoft Outlook 會提示使用者在大部分的系統設定中指定密碼。 這是您的登入密碼,不應與 PST 密碼混淆。
ShowDialog 選用 Variant True 會顯示 MAPI 登入對話方塊,可讓使用者選取 MAPI 設定檔。
NewSession 選用 Variant True 是表示 建立新的 Microsoft Outlook 會話。 由於在 Outlook 中無法建立多個作業階段,因此只有當作業階段已經不存在時,才將這個參數指定為 True。

註解

只有在 Outlook 尚未執行時,才使用 Logon 方法登入特定設定檔。 這是因為一次只能執行一個 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

另請參閱

NameSpace 物件

如何:取得並登入 Outlook 的實例

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應