如何解决如何从“user.GetDirectReports()”中检索电子邮件地址?
以下几行用于检索给定人员(通过电子邮件地址)直线经理的电子邮件地址:
import win32com.client
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
gal = outlook.Session.GetGlobalAddressList()
entries = gal.AddressEntries
chk_email = ['david@company.com']
for chk in chk_email:
for e in entries:
user = e.GetExchangeUser()
if user is not None and chk == user.PrimarySmtpAddress.lower():
print (user.GetDirectReports())
# It prints:
# <win32com.gen_py.Microsoft Outlook 16.0 Object Library.AddressEntries instance at 0x2115795695424>
# then,added lines but returned nothing
for recipient in user.GetDirectReports():
print (recipient) # returns nothing
recipient.Resolve()
print (recipient.AddressEntry()) # returns nothing
print (recipient.AddressEntry.Address) # returns nothing
print (recipient.AddressEntry.GetExchangeUser.PrimarySmtpAddress()) # returns nothing
以上案例大卫有一位直线经理。
我还尝试了另一个,Nancy,直线经理也是下属。在这一行,它显示错误:
recipient.Resolve()
AttributeError: '
如何获取/解释“xxxx@xxxx.com”表格中直线经理的电子邮件地址?
我也尝试过 user.GetExchangeUserManager()
并且它返回“
解决方法
当然 - 你会得到一个 AddressEntries
类型的 COM 对象。您需要遍历其条目。
永远不要遍历 GAL 中的所有条目 - 调用 Namespace.CreateRecipient
/ Recipient.Resolve
,然后使用 Recipient.AddressEntry
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。