1

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

地址对话框

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

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

我已经能够在我自己的电脑上通过破解注册表项来做到这一点: HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\your_profile_name\9207f3e0a3b11019908b08002b2a56c2, Value 11023d05

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

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

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

4

3 回答 3

3

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

这是您需要开始的地方:

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

于 2008-10-10T20:41:46.417 回答
1

对于那些感兴趣的人,我在我的博客上发布了我在本机 C++ 中创建的 MAPI 工具。享受。

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

于 2008-10-27T15:28:11.073 回答
0

在扩展 MAPI 级别上,您可以使用IAddrBook.SetSearchPath(仅限 C++ 或 Delphi)

如果使用 Redemption 是一个选项(它支持几乎所有语言,包括所有 .Net 语言),您可以使用它RDOSession.AddressBook.SearchPath来访问或操作地址簿搜索路径顺序 - 请参阅http://www.dimastr.com/redemption/RDOAddressBookSearchPath。 htm

于 2013-07-19T15:51:08.140 回答