使用VBScript使用Microsoft Outlook

时间:2016-01-14 18:50:27

标签: vbscript outlook

尝试使用Microsoft Outlook自动执行某些操作,但登录提示会给我带来麻烦。

        Dim objOL, outlook_NS

        Set objOL = CreateObject("Outlook.Application")         
        Set outlook_NS = objOL.GetNamespace("MAPI")

        outlook_NS.Logon "username@email.com", "password", False, True

此处的代码尝试启动Microsoft Outlook,但系统会提示我使用Windows安全弹出窗口输入我的用户名和密码。我认为登录是用于此目的,但它似乎不是。有人有主意吗?

我正在尝试登录Citrix服务器,因此必须提供登录信息,因为它不会设置默认配置文件。

提示符如下所示: enter image description here

更新:我做了一些进一步的测试,这就是我认为正在发生的事情,

    Set objOL = CreateObject("Outlook.Application")         

在我们使用该提示登录之前,不会完成执行。话虽如此,我没有看到我们能够实现这一目标的方式,因为提示是从该行代码创建的,但是一旦我们遇到这行代码,我们就会陷入“陷入困境”,直到超时或我们登录。

2 个答案:

答案 0 :(得分:0)

首先,Namespace.Logon采用现有配置文件的名称,而不是电子邮件地址。无论如何,必须先创建配置文件,然后才能使用Outlook。

答案 1 :(得分:-1)

来自Office开发中心NameSpace.Logon Method (Outlook),我相信这篇文章适用:

  

如果Outlook未运行,您只想使用。启动Outlook   默认配置文件,请勿使用Logon方法。更好的选择是   如下代码示例所示,InitializeMAPI:首先,   实例化Outlook Application对象,然后引用默认值   收件箱等文件夹。这具有初始化的副作用   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

(这是VBA,但利用率应该相似)