尝试使用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")
在我们使用该提示登录之前,不会完成执行。话虽如此,我没有看到我们能够实现这一目标的方式,因为提示是从该行代码创建的,但是一旦我们遇到这行代码,我们就会陷入“陷入困境”,直到超时或我们登录。
答案 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,但利用率应该相似)