通过不带对话框的进程登录Outlook以获取密码

时间:2016-05-23 17:03:34

标签: vb.net outlook office-automation

当我尝试使用配置文件名称通过Interop运行Outlook时,会打开一个密码对话框。此脚本从Windows任务计划程序任务运行。运行这些任务时是否使用管理员帐户?该个人资料已经制作完成,我的电子邮件帐户是此处唯一加载的帐户。

取消选中个人资料中列出的帐户Always prompt for login credentials

这是域中的网络计算机。 Outlook 2010。

个人资料切换(link):

Process.Start("Outlook", "/profile profilename")
'logs in with a prompt for the password

如何在代码中传递密码并避免对话?

或者,我有一个可以满足我需要的宏,但是在配置文件加载时我无法运行它。这也可以解决问题。启用宏将在信任中心中进行检查。

由于

1 个答案:

答案 0 :(得分:0)

首先,您需要在相同的安全上下文中运行这两个应用程序,以便能够相互自动化。

  

此应用程序正在从Windows任务计划程序启动

Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office可能会出现不稳定Office在此环境中运行时的行为和/或死锁。

如果要构建在服务器端上下文中运行的解决方案,则应尝试使用已为安全无人值守执行的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方法。如果从服务器端解决方案使用Office应用程序,则应用程序将缺少许多成功运行的必要功能。此外,您将承担整体解决方案稳定性的风险。请在Considerations for server-side Automation of Office文章中详细了解相关内容。

作为一种解决方法,您可以考虑使用Outlook所基于的低级API - 扩展MAPI。或者围绕该API的任何第三方包装器,例如Redemption。