Membaca file PST/OST yang rusak

Membaca File PST/OST yang Rusak

Dalam beberapa kasus, file PST atau OST dapat menjadi tidak dapat diakses karena korupsi atau kerusakan. Ketika hal ini terjadi, Outlook mungkin gagal membuka file tersebut, sehingga sulit untuk mengambil email penting dan data kotak surat lainnya.

Aspose.Email menyediakan API yang memungkinkan Anda memindai dan mengekstrak pesan yang tidak rusak dari file PST yang korup menggunakan ID pesan dan folder.

Metode berikut dari PersonalStorage kelas sangat penting untuk memulihkan data dari file PST yang rusak:

  • Dapatkan ID Pesan dan Folder:

    find_messages(parent_entry_id) - mengambil daftar ID pesan di dalam folder yang ditentukan.

    find_subfolders(parent_entry_id) - memperoleh daftar ID subfolder di dalam folder tertentu.

  • Akses Pesan dan Folder Menggunakan ID-nya:

    extract_message(entry_id) - mengekstrak pesan dari file PST menggunakan ID entri-nya.

    get_folder_by_id(entry_id) - mengambil folder dari file PST menggunakan ID entri-nya.

Contoh kode berikut memperlihatkan cara menavigasi file PST yang mungkin rusak, mengekstrak pesan yang tidak rusak, dan menjelajahi subfolder:

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)