使用Python和win32com从Outlook GAL获取联系信息

时间:2014-11-27 19:07:58

标签: python outlook win32com gal

我正在尝试用Python编写一个脚本,用于从Outlook全局地址列表中提取联系人信息。对于每个条目,我设法获取联系人的姓名以及别名(带有一些额外的解析)。

我的代码发布在下面:

import win32com.client

o = win32com.client.gencache.EnsureDispatch("Outlook.Application")
ns = o.GetNamespace("MAPI")

adrLi = ns.AddressLists.Item("Global Address List")
contacts = adrLi.AddressEntries
numEntries = adrLi.AddressEntries.Count

nameAliasDict = {}

for i in contacts:
    name = i.Name
    alias = i.Address.split("=")[-1]
    nameAliasDict[alias] = name

print "\nThe global address list contains",numEntries,"entries."

当我在Outlook中打开GAL(例如标题,电子邮件地址)时,是否有办法获取全部信息?

感谢。

1 个答案:

答案 0 :(得分:1)

使用AddressEntry.GetExchangeUser检索ExchangeUser对象。 如果ExchangeUser对象未显式公开某些MAPI属性,则可以使用AddressEnttry.PropertyAccessor.GetProperty检索它。使用OutlookSpy查看GAL地址条目 - 单击IAddrBook |打开Root Comtainer或IMAPISession | QueryIdentity可以查看GAL对象及其MAPI属性。