首页 > 解决方案 > 如何从特定文件夹中的 Outlook 中的不同帐户读取 Outlook 电子邮件?

问题描述

我正在尝试仅从登录到我的 Outlook 的特定帐户中读取电子邮件。假设我有帐户 1、2、3、4、5 并假设他们都有自定义文件夹:文件夹 1、文件夹 2、文件夹 3。我只想从帐户 1 中读取文件夹 1、2 和 3 中的所有电子邮件, 3 和 5。

我的代码似乎没问题,但我的问题是我似乎真的不知道如何选择我想从中读取的帐户,所以我的代码只读取一个默认帐户。我需要知道如何指定要读取的帐户。

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

folders = ["Folder 1", "Folder 2", "Folder 3"]

for folder in folders:
    messages = inbox.Folders(folder).Items
    for msg in messages:
        print(msg.Subject)

ETC...

// 编辑 //

为此,我做了以下工作:

import win32com.client
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")

stores = outlook.Stores # Storing the different outlook profiles

# Loop through each outlook profile
for store in stores:
    if "Account 1" in store.DisplayName or "Account 3" in store.DisplayName or "Account 5" in store.DisplayName: 
        inbox = store.GetDefaultFolder(6) # Get Inbox

        folders = ["Folder 1", "Folder 2", "Folder 3"]

        for folder in folders:
            messages = inbox.Folders(folder).Items
            for msg in messages:
                print(msg.Subject)

标签: pythonoutlookautomationcom

解决方案


而不是调用Namespace.GetDefaultFolder,循环遍历Namespace.Stores集合中的存储并为每个Store对象调用Store.GetDefaultFolder


推荐阅读