簡體   English   中英

如何使用 Python 解析/讀取 Outlook PST 文件?

[英]How to parse / read Outlook PST-Files with Python?

在 Internet 上搜索使用 Python 訪問 Outlook PST 文件的結果很少(並且顯示的大部分內容已經過時)。 有誰知道如何在有或沒有圖書館的情況下閱讀 PST? 不幸的是,如果沒有圖書館的幫助,我在編程方面還不夠好,無法構建 PST 閱讀器。

我的目標是獲取有關內容的以下信息:

  • 每個文件夾的項目數
  • 項目類型(郵件、會議、聯系人...)
  • 物品尺寸
  • 附件包括尺寸
  • 也許其他元數據,如日期、收件人等(可選)

我已經嘗試了以下事情:

  1. libpff / pypff :崩潰並且似乎在做某事之前讀取內存中的整個文件(沒有好的解決方案,因為 PST 文件保存在緩慢的網絡存儲上)。

  2. Libratom :與基於 libpff 的問題相同。

  3. Libpst :不清楚這是如何使用的/以二進制形式出現(沒有解釋如何安裝)/見這篇文章的答案/似乎沒有得到維護或更新。

  4. win32(在 Outlook 中安裝 PST) :一個教程展示了如何將 PST 安裝到本地安裝的 Outlook 並使用 MAPI 訪問獲取內容,但這也非常非常慢,而且不是一個好的解決方案,因為需要 Outlook。

  5. Asponse Email Python :雖然文檔不是很好,但一開始很有希望(沒有 Python 示例/不同的命名,例如 PersonalStorage 對象和許多其他對象/在每個文件夾 50 個項目后停止(可能是非免費版本的限制,但不清楚由於出版商網站上缺乏解釋)。

這是來自Asponse 網站的一個例子:

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 個項目的限制。

贖回可以是另一種選擇 - 它是擴展 MAPI 的包裝器,因此您仍然需要安裝 Outlook(對於其 MAPI 系統),但與 Outlook 對象模型不同的是,它可以從服務中使用,不需要啟動 Outlook。 exe 和/或將 PST 文件添加到用戶的默認配置文件。 您可以使用任一RDOSession LogonPstStore (它創建和刪除配置為使用指定 PST 文件的臨時配置文件)和/或RDOSession .Stores.AddPstStore以將 PST 文件添加到現有會話(例如由 Outlook 使用或由LogonPstStore創建)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM