Python win32com:读取多个Outlook收件箱

时间:2018-05-17 15:33:12

标签: python python-3.x outlook win32com

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

这些邮箱的架构是这样的:

123@abc.com

  • - >收件箱

&安培;

456@def.com

  • - >收件箱

我想从两个邮箱中读取收件箱文件夹,并存储两个文件夹中的SenderEmailAddress

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)

我不知道如何修复此问题并最终访问我的第二个邮件地址,如果有人能够帮助我,那就太棒了。

谢谢!

1 个答案:

答案 0 :(得分:2)

这是因为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