Проаналізуйте PST-файли Outlook у Python

PST (Personal Storage Table) – це формат файлу для зберігання, який використовується різними програмами Microsoft. Файли PST здатні зберігати дані повідомлень, контактів, календарів, подій тощо. Вони використовуються популярними програмами Microsoft, такими як MS Outlook, Exchange і Windows Messaging. У деяких випадках може знадобитися проаналізувати файл PST і витягти з нього дані програмним шляхом. Щоб досягти цього, у цій статті показано, як аналізувати файли PST із програм Python.

Бібліотека Python для аналізу файлів PST

Щоб розібрати файли PST, ми будемо використовувати Aspose.Email for Python. Це потужна бібліотека Python, яка дозволяє легко впроваджувати багатофункціональні клієнти електронної пошти. Крім того, він дозволяє працювати з популярними форматами електронної пошти та зберігання. Ви можете встановити бібліотеку з PyPI за допомогою наступної команди.

> pip install Aspose.Email-for-Python-via-NET

Проаналізуйте файл PST у Python

Нижче наведено кроки для аналізу PST-файлу та вилучення його інформації в Python.

  • Завантажте файл PST за допомогою методу PersonalStorage.fromfile().
  • Отримайте колекцію папок у PST за допомогою методу PersonalStorage.rootfolder.getsubfolders().
  • Отримати інформацію про папки, таку як назва, кількість елементів тощо.

У наведеному нижче прикладі коду показано, як розібрати файл PST і отримати інформацію про папки.

from aspose.email.storage.pst import PersonalStorage

# Завантажте файл PST
personalStorage = PersonalStorage.from_file("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))

Витягніть повідомлення з файлу PST у Python

Повідомлення — це основні сутності, які зберігаються у файлах PST програмами Microsoft, такими як MS Outlook. Отже, давайте подивимося, як витягувати повідомлення з файлу PST у Python.

  • Завантажте файл PST за допомогою методу PersonalStorage.fromfile().
  • Отримайте посилання на потрібну папку в об’єкті за допомогою методу PersonalStorage.rootfolder.getsubfolder().
  • Отримати колекцію повідомлень за допомогою методу getcontents().
  • Перегляньте повідомлення в колекції та прочитайте поля кожного повідомлення.

У наведеному нижче прикладі коду показано, як видобувати повідомлення з файлу PST у Python.

from aspose.email.storage.pst import PersonalStorage

# Завантажте файл PST
sourcePst = PersonalStorage.from_file("Outlook.pst")

# Виберіть потрібну папку
sourceFolder = sourcePst.root_folder.get_sub_folder("Inbox")

# Отримати вміст у папці
messageInfoCollection = sourceFolder.get_contents()

# Переглядайте повідомлення в папці
for messageInfo in messageInfoCollection:
        print ("Subject: " + messageInfo.subject)
        print("To: " + messageInfo.display_to)

Витягніть контакти з файлу PST у Python

У деяких випадках вам може знадобитися видобути інформацію про контакти, що зберігається у файлі PST. Наступні кроки показують, як отримати доступ до контактів у файлі PST у Python.

  • Завантажте файл PST за допомогою методу PersonalStorage.fromfile().
  • Отримайте посилання на папку контактів за допомогою методу getpredefinedfolder(StandardIpmFolder.CONTACTS).
  • Отримати колекцію контактів за допомогою методу getcontents().
  • Перегляньте колекцію та прочитайте кожен контакт або збережіть його.

У наведеному нижче прикладі коду показано, як витягнути контакти з файлу PST у Python.

from aspose.email.storage.pst import PersonalStorage, StandardIpmFolder
from aspose.email.mapi import ContactSaveFormat

# Завантажте файл PST
pst = PersonalStorage.from_file("SampleContacts_out.pst")

# Виберіть папку контактів				
folderInfo = pst.get_predefined_folder(StandardIpmFolder.CONTACTS)

# Отримати контакти
contactCollection = folderInfo.get_contents()

# Перегляньте колекцію контактів
for  messageInfo in contactCollection:

    # Отримайте контактну інформацію
    mapi = pst.extract_message(messageInfo)

    contact = mapi.to_mapi_message_item()

    # Показати деякий вміст на екрані
    print("Name: " + contact.name_info.display_name)

    # Зберегти на диск у форматі MSG
    if contact.name_info.display_name is not None:
        # Зберегти контакт
        contact.save("Contacts\\" + contact.name_info.display_name + "_out.msg")
        contact.save("Contacts\\" + contact.name_info.display_name + "_out.vcf", ContactSaveFormat.VCARD)

Отримайте безкоштовну ліцензію API

Ви можете безкоштовно спробувати Aspose.Email for Python, отримавши тимчасову ліцензію.

Висновок

У цій статті ви дізналися, як розбирати PST-файли в Python. Крім того, ви бачили, як видобувати контакти та повідомлення з файлу PST програмним шляхом у Python. Крім того, ви можете дізнатися більше про Aspose.Email за допомогою документації. Крім того, ви можете поділитися своїми запитаннями чи запитами на нашому форумі.

Дивись також