如何使用 python 获取主 outlook 帐户

How to get primary outlook account using python

我想使用 python 获取主要的 outlook 电子邮件地址,我的代码如下所示:

import win32com.client as client
outlook=client.gencache.EnsureDispatch('Outlook.Application')
accounts = outlook.Session.Accounts
print(accounts)
for i in accounts:
    print(i.SmtpAddress)

错误:

TypeError                                 Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_7276/1677428506.py in <module>
      3 accounts = outlook.Session.Accounts
      4 print(accounts)
----> 5 for i in accounts:
      6     print(i.SmtpAddress)

TypeError: 'Accounts' object is not iterable

预期输出:邮件格式(类似于 abc@xyz.com)

我已经为我的案例找到了解决方案,下面的代码可以正常工作:

import win32com.client as win32
outlook_app = win32.gencache.EnsureDispatch('Outlook.Application')
ons = outlook_app.GetNamespace("MAPI")
count1 = outlook_app.Session.Accounts.Count
print(count1)
for i in range(1,count1+1):

    if ons.Accounts.Item(i).DisplayName.lower().find("thakral") != -1:
        print(ons.Accounts.Item(i).DisplayName)
        print("TRUE")

主要 Outlook 帐户(请注意,OOM 仅公开邮件帐户,而不公开存储或地址簿)将是 Namespace.Accounts 集合中的第一个帐户。