我如何在 MS Office Organization 中找到 "reports to" 的电子邮件地址?

How can i find the email address of the "reports to" in MS Office Organization?

问题:我有一份我公司员工的电子邮件地址列表。我想存储他们boss/leader(在 Outlook 组织选项卡中称为“报告给”)的电子邮件地址。

信息: 我想使用 Python 3.x 来解决这个问题。最好使用 win32.Dispatch('outlook.application') 或不需要 Active Directory 管理员干预的类似工具。

outlook 截图:

解决方法:

我在阅读下面 Eugene Astafiev 的 post 后找到了解决方案。非常感谢!

import win32com.client

outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
gal = outlook.Session.GetGlobalAddressList()
entries = gal.AddressEntries

recipient = outlook.CreateRecipient("name@domain.com")
recipient.Resolve()

print ("recipient:", recipient)
print ("recipient.AddressEntry.GetExchangeUser().GetExchangeUserManager():", recipient.AddressEntry.GetExchangeUser().GetExchangeUserManager())
print ("recipient.AddressEntry.GetExchangeUser().GetExchangeUserManager().PrimarySmtpAddress:", recipient.AddressEntry.GetExchangeUser().GetExchangeUserManager().PrimarySmtpAddress)

假设您已经拥有 AddressEntry 对象的实例,请使用 AddressEntry.GetExchangeUser().Manager(returns 另一个 AddressEntry 对象,准备好处理空值和错误)。

您可以使用 Outlook 对象模型中 ExchangeUser class 的 GetExchangeUserManager 方法。 属性 和方法调用的顺序如下所示:

Recipient.AddressEntry.GetExchangeUser().GetExchangeUserManager()

ExchangeUser 派生自 AddressEntry 对象,当调用者在 AddressEntry 对象上执行查询接口时返回而不是 AddressEntry

此对象提供对适用于 Exchange 用户的属性的优先 class 访问权限,例如 FirstNameJobTitleLastNameOfficeLocation。您还可以通过 PropertyAccessor 对象访问未在对象模型中公开的特定于 Exchange 用户的其他属性。请注意,一些显式内置属性是读写属性。设置这些属性要求代码在适当的 Exchange 管理员帐户下 运行;没有足够的权限,调用 ExchangeUser.Update 方法将导致“权限被拒绝”错误。