【问题标题】:Python win32com : Reading multiple Outlook inboxPython win32com:读取多个 Outlook 收件箱
【发布时间】:2018-10-27 22:52:09
【问题描述】:

我想获取发送到两个指定邮件地址的所有电子邮件的 SenderEmailAddress:123@abc.com 和 456@def.com 在我的计算机上的 Outlook 应用程序中,重点是列出所有邮件将保存在 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)

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

谢谢!

【问题讨论】:

    标签: python python-3.x outlook win32com


    【解决方案1】:

    发生这种情况是因为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
    

    【讨论】:

    • 完美运行!我以为 GetDefaultFolder(6) 是为了进入“收件箱”,我不知道我必须使用两次文件夹,非常感谢您的回答!
    • 很高兴为您提供帮助,请将答案标记为正确,以便对其他人也有帮助。
    • 对于在我之后发现此内容的任何人,似乎引用文件夹/子文件夹的格式已更新为 inbox = outlook.Folders['123@abc.com'].Folders['Inbox']
    猜你喜欢
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-14
    • 1970-01-01
    • 2019-02-17
    • 2017-12-04
    • 1970-01-01
    相关资源
    最近更新 更多