我如何在 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 访问权限,例如 FirstName
、JobTitle
、LastName
和 OfficeLocation
。您还可以通过 PropertyAccessor
对象访问未在对象模型中公开的特定于 Exchange 用户的其他属性。请注意,一些显式内置属性是读写属性。设置这些属性要求代码在适当的 Exchange 管理员帐户下 运行;没有足够的权限,调用 ExchangeUser.Update
方法将导致“权限被拒绝”错误。
问题:我有一份我公司员工的电子邮件地址列表。我想存储他们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 访问权限,例如 FirstName
、JobTitle
、LastName
和 OfficeLocation
。您还可以通过 PropertyAccessor
对象访问未在对象模型中公开的特定于 Exchange 用户的其他属性。请注意,一些显式内置属性是读写属性。设置这些属性要求代码在适当的 Exchange 管理员帐户下 运行;没有足够的权限,调用 ExchangeUser.Update
方法将导致“权限被拒绝”错误。