在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。
是否有人能够以编程方式重新排序联系人姓名解析列表?
答案 0 :(得分:3)
我过去曾为一家公司做过这件事。它是一个.NET应用程序,在每台PC上运行并重新排序此列表。
这是您需要开始的地方:
答案 1 :(得分:1)
对于那些感兴趣的人,我发布了我在博客上创建的MAPI工具,其源代码是原生C ++。享受。
答案 2 :(得分:0)
在扩展MAPI级别,您可以使用IAddrBook.SetSearchPath
(仅限C ++或Delphi)
如果使用Redemption是一个选项(几乎支持所有语言,包括所有.Net语言),您可以使用RDOSession.AddressBook.SearchPath
来访问或操作地址簿搜索路径顺序 - 请参阅http://www.dimastr.com/redemption/RDOAddressBookSearchPath.htm < / p>