我需要创建一个 Python 脚本,该脚本根据他们的电子邮件获取有关 1500 个 Outlook 联系人(共 20000 个)的不同信息。到目前为止,我设法做到了:
def grab_user_details(email):
first_name, last_name, department, location = '', '', '', ''
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
gal = outlook.Session.GetGlobalAddressList()
entries = gal.AddressEntries
for i in entries:
user = i.GetExchangeUser()
if user is not None:
if user.PrimarySmtpAddress == email:
first_name = email.split("@")[0].split(".")[0].title()
last_name = email.split("@")[0].split(".")[1].title()
department = user.Department
location = user.OfficeLocation
print(email, first_name, last_name, department, location)
break
最后,代码只是针对该特定电子邮件遍历 GAL。找到它后,它会中断,并继续搜索下一封电子邮件。这种方法对于以 A 或至少 B 开头的电子邮件来说很快……但是当您有一个包含 20000 封电子邮件的 GAL 时,您不能只等待 2 天就可以完成整个字母表。
有没有更快的方法来做到这一点?
谢谢!