读取损坏的 PST/OST 文件

读取损坏的 PST/OST 文件

在某些情况下,PST 或 OST 文件可能因损坏而无法访问。此时 Outlook 可能无法打开该文件,导致难以检索重要的电子邮件和其他邮箱数据。

Aspose.Email 提供的 API 允许您使用邮件和文件夹 ID 扫描并提取损坏 PST 文件中未受损的邮件。

以下是该类的方法 PersonalStorage 类对于从损坏的 PST 文件中恢复数据至关重要:

  • 检索邮件和文件夹的 ID:

    find_messages(parent_entry_id) - 检索指定文件夹内的邮件 ID 列表。

    find_subfolders(parent_entry_id) - 获取指定文件夹内子文件夹的 ID 列表。

  • 使用 ID 访问邮件和文件夹:

    extract_message(entry_id) - 使用其 entry ID 从 PST 文件中提取邮件。

    get_folder_by_id(entry_id) - 使用其 entry ID 从 PST 文件中检索文件夹。

以下代码示例演示了如何遍历可能已损坏的 PST 文件,提取未受损的邮件,并浏览子文件夹:

import aspose.email as ae

def explore_corrupted_pst(pst, root_folder_id):
    message_id_list = pst.find_messages(root_folder_id)

    for message_id in message_id_list:
        try:
            msg = pst.extract_message(message_id)
            print("- " + msg.subject)
        except Exception as e:
            print("Message reading error. Entry id: " + message_id)

    folder_id_list = pst.find_subfolders(root_folder_id)

    for sub_folder_id in folder_id_list:
        if sub_folder_id != root_folder_id:
            try:
                subfolder = pst.get_folder_by_id(sub_folder_id)
                print(subfolder.display_name)
            except Exception as e:
                print("Message reading error. Entry id: " + sub_folder_id)

            explore_corrupted_pst(pst, sub_folder_id)


pst = ae.storage.pst.PersonalStorage.from_file("target.pst")

explore_corrupted_pst(pst, pst.root_folder.entry_id_string)