تجزیه و تحلیل فایل های PST Outlook در پایتون

PST (Personal Storage Table) یک فرمت فایل ذخیره سازی است که توسط برنامه های مختلف مایکروسافت استفاده می شود. فایل‌های PST قادر به نگهداری داده‌های پیام‌ها، مخاطبین، تقویم‌ها، رویدادها و غیره هستند. این فایل توسط نرم‌افزارهای محبوب مایکروسافت مانند MS Outlook، Exchange و Windows Messaging استفاده می‌شود. در موارد خاص، ممکن است لازم باشد یک فایل PST را تجزیه کنید و داده ها را به صورت برنامه ریزی شده از آن استخراج کنید. برای دستیابی به آن، این مقاله نحوه تجزیه فایل‌های PST را از داخل برنامه‌های پایتون نشان می‌دهد.

کتابخانه پایتون برای تجزیه فایل های PST

برای تجزیه فایل‌های PST، از Aspose.Email for Python استفاده می‌کنیم. این یک کتابخانه قدرتمند پایتون است که به شما امکان می دهد کلاینت های ایمیل غنی از ویژگی ها را به طور یکپارچه پیاده سازی کنید. علاوه بر این، به شما امکان می دهد با ایمیل ها و فرمت های ذخیره سازی محبوب کار کنید. با استفاده از دستور زیر می توانید کتابخانه را از PyPI نصب کنید.

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

یک فایل PST را در پایتون تجزیه کنید

مراحل زیر برای تجزیه یک فایل PST و استخراج اطلاعات آن در پایتون است.

  • فایل PST را با استفاده از روش PersonalStorage.fromfile () بارگیری کنید.
  • با استفاده از روش PersonalStorage.rootfolder.getsubfolders() مجموعه پوشه ها را در PST دریافت کنید.
  • بازیابی اطلاعات پوشه ها مانند نام، تعداد موارد و غیره.

نمونه کد زیر نحوه تجزیه یک فایل 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 در پایتون استخراج کنید

پیام ها موجودیت های اصلی هستند که توسط برنامه های مایکروسافت مانند MS Outlook در فایل های PST ذخیره می شوند. بنابراین بیایید ببینیم که چگونه پیام ها را از یک فایل PST در پایتون استخراج کنیم.

  • فایل PST را با استفاده از روش PersonalStorage.fromfile () بارگیری کنید.
  • با استفاده از متد PersonalStorage.rootfolder.getsubfolder() مرجع پوشه مورد نظر را در یک شیء دریافت کنید.
  • با استفاده از متد getcontents() مجموعه پیام را دریافت کنید.
  • پیام‌های موجود در مجموعه را مرور کنید و فیلدهای هر پیام را بخوانید.

نمونه کد زیر نحوه استخراج پیام ها از فایل PST در پایتون را نشان می دهد.

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 در پایتون استخراج کنید

در موارد خاص، ممکن است لازم باشد اطلاعات مخاطبین ذخیره شده در یک فایل PST را استخراج کنید. مراحل زیر نحوه دسترسی به مخاطبین یک فایل PST در پایتون را نشان می دهد.

  • فایل PST را با استفاده از روش PersonalStorage.fromfile () بارگیری کنید.
  • با استفاده از روش getpredefinedfolder(StandardIpmFolder.CONTACTS) مرجع پوشه مخاطبین را دریافت کنید.
  • با استفاده از متد getcontents() مجموعه ای از مخاطبین را دریافت کنید.
  • مجموعه را مرور کنید و هر مخاطب را بخوانید یا آن را ذخیره کنید.

نمونه کد زیر نحوه استخراج مخاطبین از فایل PST در پایتون را نشان می دهد.

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 را برای پایتون با [دریافت مجوز موقت] به صورت رایگان امتحان کنید.

نتیجه

در این مقاله نحوه تجزیه فایل های PST در پایتون را یاد گرفتید. علاوه بر این، نحوه استخراج مخاطبین و پیام ها از یک فایل PST را به صورت برنامه نویسی در پایتون مشاهده کرده اید. علاوه بر این، می توانید با استفاده از documentation درباره Aspose.Email بیشتر کاوش کنید. همچنین، می‌توانید سؤالات یا سؤالات خود را در [فروم 6 ما به اشتراک بگذارید.

همچنین ببینید