【问题标题】:How to programmatically update the Outlook contact name resolution order如何以编程方式更新 Outlook 联系人姓名解析顺序
【发布时间】:2008-10-10 20:35:07
【问题描述】:

在 Outlook 2003 中,打开通讯簿,选择工具->选项。您会看到地址对话框显示选项“发送邮件时,请按以下顺序使用这些地址列表检查姓名:”

对于大多数人来说,这将只包含“联系人”。对于企业网络,它可能还包含“全球地址列表”。问题是,在我的公司中,GAL 有数万之多,在尝试发送电子邮件时,名称解析中经常会发生冲突,并将其发送给另一个国家/地区的错误人员。

相反,我想在该列表的顶部放置一个单独的 Exchange 地址列表“X”,以便在检查 GAL 之前首先解析我们自己公司中的名称。然后,解决“联系人”,然后是 GAL。此配置需要部署到数百台 PC。

我已经能够通过破解注册表项在我自己的 PC 上执行此操作: HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\your_profile_name\9207f3e0a3b11019908b08002b2a56c2,价值11023d05

这包含一个 REG_BINARY 数据结构,该结构列出了此列表中项目的 ID。我可以根据自己的喜好对它们重新排序,Outlook 接受它。

GAL 和“X”地址列表的 ID 是静态的。但是,问题在于“联系人”ID 显然不是静态的,可能是用户和/或计算机独有的。它的值似乎在注册表中是不可发现的。这使我无法简单地将这个注册表值复制到所有 PC。

是否有人能够以编程方式重新排序联系人姓名解析列表?

【问题讨论】:

    标签: outlook registry exchange-server


    【解决方案1】:

    我过去曾为一家公司做过这件事。这是一个 .NET 应用程序,可在每台 PC 上运行并重新排序此列表。

    这是你需要开始的地方:

    http://msdn.microsoft.com/en-us/library/bb820991.aspx

    【讨论】:

    • 谢谢。使用这个示例,我能够构建一个原生 C++ 项目来完成工作。
    【解决方案2】:

    对于那些感兴趣的人,我在我的博客上发布了我创建的 MAPI 工具,其源代码为原生 C++。享受吧。

    http://www.explodingcoder.com/cms/content/programmatically-updating-outlooks-address-book-options-with-a-command-line-tool

    【讨论】:

      猜你喜欢
      • 2017-06-16
      • 1970-01-01
      • 1970-01-01
      • 2013-05-29
      • 1970-01-01
      • 2018-02-15
      • 1970-01-01
      • 2015-03-15
      • 2017-02-23
      相关资源
      最近更新 更多