重要说明 本文包含的信息向你介绍了如何在计算机上降低安全设置或关闭安全功能。 您可以通过这些更改来解决特定的问题。 我们建议你在进行这些更改之前,充分考虑在你的特定环境中实施这种解决方法可能带来的风险。 若要实施此解决方法,请执行任何适当的附加操作以帮助保护计算机。
症状
当你尝试打开 Microsoft Outlook 邮件中链接的文件附件时,Outlook 阻止对此链接的访问。 发生此问题时,您可能会在 Outlook 信息栏中收到类似如下内容的错误消息:
Outlook 禁止访问下列具有潜在不安全因素的附件: filename。
受此问题影响的附件很少。 通常,这些附件使用扩展 MAPI 或 Outlook 对象模型由自定义解决方案创建,用于将功能添加到一个 Microsoft Exchange 邮箱或一组本地 Outlook 文件夹。
原因
发生此问题的原因是,默认情况下,Outlook 2010 和 Outlook 2013 不允许打开链接的文件附件。 此外,2010 年 7 月的一个安全更新已对 Outlook 2002、Outlook 2003 和 Outlook 2007 进行了更新以包括此行为。
有关此安全更新的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
MS10-045: 帮助和支持中心中的漏洞可能允许远程执行代码
有关更多信息,请访问以下 Microsoft 安全响应中心公告:
解决方法
若要解决此问题,请使用以下方法:
-
方法 1
如果您是使用链接文件附件的自定义解决方案的开发人员,我们建议您更改该解决方案,以便它不再使用链接的文件。 具体来说,避免为附件的 PR_ATTACH_METHOD 属性使用以下选项:-
ATTACH_BY_REFERENCE
-
ATTACH_BY_REF_ONLY
-
ATTACH_BY_REF_RESOLVE
一个可行的方法可能是改为在邮件正文中使用超级链接。 -
-
方法 2
警告 此解决方法可能会导致你的计算机或网络更易受到恶意用户或恶意软件(例如病毒)的攻击。 我们不建议您采用这种替代方法,此信息仅供参考,您应自行决定是否实施此替代方法。 使用此解决方法需要你自担风险。
重要说明 本部分、方法或任务包含有关如何修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,请一定严格按照下列步骤操作。 为了获得进一步的保护,请在修改注册表之前对其进行备份。 这样就可以在出现问题时还原注册表。 有关如何备份和还原注册表的更多信息,请单击下面的文章编号查看 Microsoft 知识库中相应的文章:如何在 Windows 中备份和还原注册表
可以使用一个注册表项来防止 Outlook 阻止链接的文件附件,以便这些附件可以直接打开。 但是,我们不建议您使用该注册表项,因为这样做会降低 Outlook 的安全性,并且可能会允许访问恶意附件。
若要配置 AllowAttachByRef 注册表项,请添加一个名为 AllowAttachByRef(值为 1)的 DWORD 值。
若要添加此注册表项,请按照下列步骤操作:-
依次单击“开始”、“运行”,在“打开”框中键入 regedit,然后单击“确定”。
-
在注册表中找到并单击下列子项之一:
-
Outlook 2013(版本 15.0)
HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Security 或:HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\15.0\Outlook\Security
-
Outlook 2010(版本 14.0)
HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook\Security
或:HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\14.0\Outlook\Security -
Outlook 2007(版本 12.0)
HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Outlook\Security
或:HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\12.0\Outlook\Security -
Outlook 2003(版本 11.0)
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\Security
或: HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\11.0\Outlook\Security -
Outlook 2002(版本 10.0)
HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Outlook\Security
或:
HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\10.0\Outlook\Security
-
-
在“编辑”菜单上,指向“新建”,然后单击“DWORD 值”。
-
键入 AllowAttachByRef 作为 DWORD 的名称,然后按 Enter。
-
右键单击 AllowAttachByRef,然后单击“修改”。
-
在“数值数据”框中,键入 1,然后单击“确定”。
-
退出注册表编辑器,然后重新启动计算机。
重要说明 AllowAttachByRef 注册表项仅会重新启用 ATTACH_BY_REFERENCE 和 ATTACH_BY_REF_ONLY 附件。 仍将阻止 ATTACH_BY_REF_RESOLVE 附件。 -
更多信息
Outlook 2002 和更早版本的 Outlook 允许你通过使用“插入文件”命令来创建链接的附件。 但是,这仅适用于以 RTF 格式设置格式的邮件。 此功能在较新版本的 Outlook 中不可用。 不过,您可以改为在邮件正文中插入超级链接。
通过 Outlook 对象模型,用户可以创建和发送链接的附件。 但是,当这些消息发送后,MAPI 会将链接的附件转换为嵌入的附件。
由于方案的整体尺寸非常大,并且 Outlook 还会阻止其他类型的附件(具体取决于配置),您应确保测试这些方案,了解此问题是否可能与您在 Outlook 中注意到的一些意外行为有关。 确定附件是否为链接文件的最佳方法是使用基于 MAPI 的工具(如 MFCMAPI)检查该附件的 PR_ATTACH_METHOD 属性是否设置为下列值之一: