gpt4 book ai didi

python - 如何使用 Python 解析/读取 Outlook PST 文件?

转载 作者:行者123 更新时间:2023-12-05 05:53:20 31 4
gpt4 key购买 nike

在 Internet 上搜索使用 Python 访问 Outlook PST 文件的结果很少(而且显示的大部分内容都已过时)。有谁知道如何在有或没有图书馆的情况下阅读 PST?不幸的是,我的编程水平不够好,无法在没有图书馆帮助的情况下构建 PST 阅读器。

我的目标是获取有关内容的以下信息:

  • 每个文件夹的项目数
  • 项目类型(邮件、 session 、联系人...)
  • 项目的大小
  • 附件,包括尺寸
  • 可能是其他元数据,如日期、收件人等(可选)

我已经尝试过以下方法:

  1. libpff/pypff:崩溃并且似乎在执行某些操作之前读取内存中的整个文件(没有好的解决方案,因为 PST 文件保存在缓慢的网络存储中)。

  2. Libratom :与基于 libpff 的问题相同。

  3. Libpst:不清楚它是如何使用的/以二进制形式出现(没有解释如何安装)/参见 this post 上的答案/似乎没有维护或更新。

  4. win32(在 Outlook 中安装 PST):一个教程展示了如何将 PST 安装到本地安装的 Outlook 中并使用 MAPI 访问获取内容,但这也非常非常由于需要 Outlook,因此速度慢且不是一个好的解决方案。

  5. Asponse Email Python:虽然文档不是很好,但在开始时很有希望(没有 Python 示例/不同的命名,例如 PersonalStorage 对象和许多其他对象/在每个文件夹 50 个项目后停止(可能是非免费版本的限制,但由于出版商网站上缺乏解释而不清楚)。

这是来自 Asponse-website 的示例:

personalStorage = PersonalStorage.from_file(dataDir + "Outlook.pst")

folderInfoCollection = personalStorage.root_folder.get_sub_folders()

for folderInfo in folderInfoCollection:

print("Folder: " + folderInfo.display_name)
print("Total Items: " + str(folderInfo.content_count))
print("Total Unread Items: " + str(folderInfo.content_unread_count))
print("----------------------")

我进行了大量的谷歌搜索以找到合适的导入语句来进行此运行。

有没有人有稳定清晰的方法来阅读 Outlook PST 文件?即使是使用 Asponse 的解决方案也会超过 50 个项目的限制。

最佳答案

Redemption (我是它的作者)可以是另一种选择 - 它是扩展 MAPI 的包装器,因此您仍然需要安装 Outlook(用于其 MAPI 系统),但与 Outlook 对象模型不同,它可以从服务中使用并且确实不需要启动 outlook.exe 和/或将 PST 文件添加到用户的默认配置文件。您可以使用 RDOSession .LogonPstStore(它创建和删除配置为使用指定 PST 文件的临时配置文件)和/或 RDOSession .Stores.AddPstStore 将 PST 文件添加到现有 session (例如,由 Outlook 使用或由 LogonPstStore 创建)。

关于python - 如何使用 Python 解析/读取 Outlook PST 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69905319/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com