Python win32com:读取多个Outlook收件箱



我想获取在两个指定邮件地址上发送的所有电子邮件的SenderEmailAddress:我的计算机上Outlook应用程序中的 123@abc.com 和 456@def.com,重点是列出将保存在csv文件中的所有邮件发件人。

这些邮箱的体系结构是这样的:

123@abc.com

  • ->
  • 收件箱

&

456@def.com

  • ->
  • 收件箱

我想从两个邮箱中读取收件箱文件夹,并从两个文件夹中存储发件人电子邮件地址

outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder(6)

我发现对于某些人来说,它可以使用

inbox = outlook.GetDefaultFolder(6).Folders[1] # To access 123@abc.com Inbox
inbox = outlook.GetDefaultFolder(6).Folders[2] # To access 456@def.com Inbox

但就我而言,它只是让我进入收件箱内的两个子文件夹,仅此而已,我根本无法访问第二个邮箱。 我有可能通过使用

for folder in outlook.Folders: 
print(folder.Name)

我不知道如何解决这个问题,最后访问我的第二个邮件地址,如果有人能够在这方面帮助我,那就太好了。

谢谢!

发生这种情况是因为GetDefaultFolder(6)引用了第一个Inbox,因此.Folders[1].Folders[2]只会将您带到同一第一Inbox的子文件夹。

您可以通过像这样指定它们来访问这些收件箱:

inbox = outlook.Folders('123@abc.com').Folders('Inbox') # To access 123@abc.com Inbox
inbox = outlook.Folders('456@def.com').Folders('Inbox') # To access 456@def.com Inbox

最新更新