OL2002: 在 Outlook 没有运行的情况下通过 Outlook 对象模型访问通讯簿时不接受 Outlook 安全设置

文章翻译 文章翻译
文章编号: 329765 - 查看本文应用于的产品
展开全部 | 关闭全部

症状

如果您尝试在 Outlook 没有运行时使用 Outlook 对象模型以编程方式获得对通讯簿的访问,即使在 Outlook 10 的 Security Settings 文件夹中已经正确启用了“允许通过 Outlook 对象模型访问通讯簿”,您仍可能会收到以下安全提示。

A program is trying to access e-mail addresses you have stored in Outlook.Do you want to allow this?

If this is unexpected, it may be a virus and you should choose "No".

原因

此行为发生的原因是没有正在运行的 Outlook 会话来确定要加载的正确的安全配置文件。因此使用了默认的安全配置文件,导致出现安全提示。

当您以编程方式访问通讯簿中的条目时,必须存在运行的会话以确定要加载的正确的安全配置文件。当 Microsoft Outlook XP 没有运行时,因为使用了默认的安全配置文件,所以安全对话对用户进行提示。

替代方法

要解决此问题,请使用本部分中的第二个代码示例。

例如,此段 Visual Basic 脚本 (VBS) 语言代码将导致显示安全提示:
    Set ol      = CreateObject("Outlook.Application")
    Set AL      = ol.session.addresslists("Global Address List")
    Set AE      = AL.addressEntries(1)
    MsgBox AE.address
				

下面的代码通过对已建立的 Outlook 对话的永久性引用解决了此问题,因此不会引发安全提示:
    Set ol      = CreateObject("Outlook.Application")
    Set session = ol.session
    Set AL      = ol.session.addresslists("Global Address List")
    Set AE      = AL.addressEntries(1)
    MsgBox AE.address
				

更多信息

有关电子邮件安全功能的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
290499 OL2002:Administrator Information About E-Mail Security Features

属性

文章编号: 329765 - 最后修改: 2003年6月12日 - 修订: 1.0
这篇文章中的信息适用于:
  • Microsoft Outlook 2002 标准版
关键字: 
kbfix kbprb KB329765
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈