【问题标题】:Using Python to read all emails from Outlook Folder使用 Python 读取 Outlook 文件夹中的所有电子邮件
【发布时间】:2020-12-04 11:54:55
【问题描述】:

我想从 Outlook 中读取特定文件夹中的所有电子邮件,但由于某种原因,我只能获得 1 年的数据。如果我今天运行它,我会收到从 20 年 12 月 4 日到 2019 年 12 月 4 日的所有电子邮件。

我在迭代中做错了吗?

import win32com.client

# create object
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
# get the folder
root_folder = outlook.Folders['myemail@xxxxx.com'].Folders['Folder']


messages = root_folder.Items

subject_content = []
body_content = []
creation_time = []
for message in messages:
    subject_content.append(message.subject)
    body_content.append(message.body)
    creation_time.append(message.creationtime)
    message = messages.GetNext()

【问题讨论】:

  • 您是否收到错误消息?这是 Outlook 中的缓存配置文件还是在线配置文件?
  • 我没有收到任何错误,但我想获取多年的数据,而不是仅获取过去一年的数据。
  • 再说一遍,这是什么类型的个人资料?
  • 这是一个在线个人资料

标签: python outlook win32com


【解决方案1】:

在联机配置文件中,Exchange 服务器将同时打开的消息数限制为 255。为避免用完 RPC 通道,请在完成项目后立即释放它们并避免使用“foreach”迭代器 - 它们保持所有访问在迭代器被释放之前引用的对象。改用“for”循环 (for index in range(1, messages.Count+1))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 2018-04-26
    • 2018-07-08
    • 1970-01-01
    相关资源
    最近更新 更多