vba - Outlook VBA 未在某些 Windows 10 计算机上返回 CurrentUser Recipient 对象

标签 vba outlook namespaces windows-10

我的工作已经开始推出一套新的联想 ThinkCentre Windows 10 电脑。问题是,在某些模型(但不是全部)上,由于 Application.Session.CurrentUser 不包含任何信息,我尝试从 Outlook 获取用户的电子邮件地址失败。如果我能找到解决方案或获取电子邮件地址的不同方法,那么我会很高兴。

这是几周前他们开始安装新计算机之前运行良好的代码:

Dim outApp As Object, outSession As Object

Set outApp = CreateObject("Outlook.Application")

Set outSession = outApp.Session.CurrentUser ' BREAKS HERE
currentuserEmailAddress = outSession.AddressEntry.GetExchangeUser().PrimarySmtpAddress

Set outApp = Nothing
End Function

在这些新系统上,尝试运行代码会抛出 运行时错误 287 在注释行。将 outApp 添加到较新系统上的监视列表显示 CurrentUser 对象为空。在我的 PC 上,我可以展开 CurrentUser 对象以查看其属性等,但在较新的对象上,它不可展开,仅在“值”列下显示“<>”。

我向我们的技术支持人员提出了一个问题,但前几天我不得不向他们解释 VGA 电缆和 DisplayPort 电缆之间的区别,所以我没有屏住呼吸。

最佳答案

尝试查看 Accounts改为收集:

Namespace.Accounts.Item(1).SmtpAddress 

不管怎样,runtime error 287声明您在处理 Outlook 对象模型时触发了安全问题。为了弥补安全问题的差距,您可以:
  • 使用 Outlook 基于的低级 API - 扩展 MAPI。此外,您可以考虑使用围绕此 API 的任何第三方包装器,例如 Redemption。
  • 使用专为关闭此类问题而设计的组件。见 Security Manager for Microsoft Outlook .
  • 设置任何有效的防病毒软件。
  • 部署组策略以抑制 OOM 中的此类触发器。
  • 关于vba - Outlook VBA 未在某些 Windows 10 计算机上返回 CurrentUser Recipient 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62261044/

    相关文章:

    backbone.js - 主干命名空间约定最佳实践

    excel - 通过 VBA 更改 Excel 中超链接的 TextToDisplay

    excel - 如何使用VBA在Excel中添加新工作表?

    vba - 如何在 MS Word 中使用 VBA 确定表格单元格中的段落是编号还是项目符号?

    C# 电子邮件 - 新行未使用空白 : pre-wrap 呈现

    c# - 使用 Inspector 以编程方式加密 Outlook 电子邮件

    email - Bingpreview 使电子邮件中的一次性链接失效

    c++ - 查找 MSVC 中包含 C++ 命名空间的位置

    text - 如果内容总和 = 零并跳过包含任何文本的行,如何隐藏 Excel 行?

    namespaces - gevent-socketio 和命名空间