首页 > 解决方案 > 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
    email = i.Address
    manager = i.Manager
    alias = i.Address.split("=")[-1]
    nameAliasDict[alias] = name

    if "David" in name:                # any David's email and his manager's email address
        print (email, manager)

但它不会返回电子邮件地址和个人经理的电子邮件。

获得它的正确方法是什么?(反之亦然,知道一个人的名字,得到他的下属。)

谢谢你。

标签: pythonoutlookwin32comgal

解决方案


您可以尝试以下代码段:

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

for e in entries:
    user = e.GetExchangeUser()
    if user is not None:
        print(user.Name)
        print(user.FirstName)
        print(user.LastName)
        print(user.PrimarySmtpAddress)

推荐阅读