使用VBScript处理Microsoft Outlook

使用VBScript处理Microsoft Outlook,vbscript,outlook,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", F

试图用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服务器,因此有必要提供登录信息,因为它没有默认的配置文件设置

提示如下所示:

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

    Set objOL = CreateObject("Outlook.Application")         

在使用该提示登录之前不会完成执行。话虽如此,我看不出有什么办法可以做到这一点,因为提示符是从那一行代码创建的,但一旦我们碰到那一行代码,我们就会陷入困境,直到超时或登录为止

在Office开发中心,我相信这篇文章适用于:

如果Outlook未运行,而您只希望使用 默认配置文件,不要使用登录方法。更好的选择是 如下面的代码示例所示,InitializeMAPI:first, 实例化Outlook应用程序对象,然后引用默认值 文件夹,例如收件箱。这有初始化的副作用 MAPI使用默认配置文件并使对象模型完全 功能性的


这是VBA,但利用率应该类似。首先,名称空间。登录使用现有配置文件的名称,而不是电子邮件地址。无论如何,必须先创建配置文件,然后才能使用Outlook

谢谢你的建议。但是,这样做仍然会导致相同的登录提示。当您定期打开outlook时会发生什么?您是否设置了默认配置文件?我们正在尝试从Citrix服务器使用Outlook,因此手动打开Outlook时会出现相同的提示。啊,是的,谢谢您的编辑。我会留下答案,以防它对其他人有帮助,但现在可能不适用于你。这很奇怪,无论我做什么,我都无法让它显示提示。。。ns.logon asdfasdf,,true,true,发送电子邮件/灌木像一个常见的问题。一些可能的解决方案,谢谢@niton的链接。不过,我认为我的问题有点不同。因为我们正在登录一台Citrix服务器,我想我们是以来宾用户或普通用户的身份登录该服务器的,所以会出现提示。我只是看不到一种自动登录此提示符的方法。
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