Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python,Outlook以检索个人';s电子邮件和此人';s经理';s电子邮件_Python_Outlook_Win32com_Gal - Fatal编程技术网

Python,Outlook以检索个人';s电子邮件和此人';s经理';s电子邮件

Python,Outlook以检索个人';s电子邮件和此人';s经理';s电子邮件,python,outlook,win32com,gal,Python,Outlook,Win32com,Gal,试图查找某人的电子邮件和该人的直线经理。我使用下面的代码: import win32com.client o = win32com.client.gencache.EnsureDispatch("Outlook.Application") ns = o.GetNamespace("MAPI") adrLi = ns.AddressLists.Item("Global Address List") contacts = adrLi.A

试图查找某人的电子邮件和该人的直线经理。我使用下面的代码:

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)
但它不会返回电子邮件地址和个人经理的电子邮件

什么是获得它的正确方法?(另一种方法是,知道一个人的名字,找到他的下属。)


谢谢。

您可以尝试以下代码片段:

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)

非常感谢。但是错误弹出,AttributeError:'NoneType'对象没有属性'PrimarySmtpAddress'(它没有属性'Name','FirstName','LastName',两者都没有)。我刚刚添加了对None对象的控制谢谢!它起作用了!知道如何获取个人行管理器的详细信息吗?user对象有两种方法user.GetDirectReports()和user.GetExchangeUserManager()。当然要注意检查返回的对象,因为它们可能是空的(例如,如果用户没有报告),再次感谢您分享知识!