Python'da Outlook PST Dosyalarını Ayrıştırma

PST (Kişisel Depolama Tablosu), farklı Microsoft programları tarafından kullanılan bir depolama dosyası biçimidir. PST dosyaları mesajların, kişilerin, takvimlerin, etkinliklerin vb. verilerini tutabilir. MS Outlook, Exchange ve Windows Messaging gibi popüler Microsoft yazılımları tarafından kullanılır. Bazı durumlarda, bir PST dosyasını ayrıştırmanız ve ondan programlı olarak veri çıkarmanız gerekebilir. Bunu başarmak için bu makale, PST dosyalarının Python uygulamalarından nasıl ayrıştırılacağını gösterir.

PST Dosyalarını Ayrıştırmak İçin Python Kitaplığı

PST dosyalarını ayrıştırmak için Aspose.Email for Python kullanacağız. Zengin özelliklere sahip e-posta istemcilerini sorunsuz bir şekilde uygulamanıza izin veren güçlü bir Python kitaplığıdır. Ayrıca, popüler e-posta ve depolama biçimleriyle çalışmanıza olanak tanır. Aşağıdaki komutu kullanarak PyPI kitaplığını kurabilirsiniz.

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

Python’da bir PST Dosyasını Ayrıştırın

Aşağıda, bir PST dosyasını ayrıştırma ve Python’daki bilgilerini çıkarma adımları yer almaktadır.

  • PersonalStorage.fromfile() yöntemini kullanarak PST dosyasını yükleyin.
  • PersonalStorage.rootfolder.getsubfolders() yöntemini kullanarak PST’deki klasör koleksiyonunu alın.
  • Ad, öğe sayısı vb. gibi klasörlerin bilgilerini alın.

Aşağıdaki kod örneği, bir PST dosyasının nasıl ayrıştırılacağını ve klasör bilgilerinin nasıl alınacağını gösterir.

from aspose.email import PersonalStorage

# PST dosyasını yükle
personalStorage = PersonalStorage.from_file("Outlook.pst")

# Klasör koleksiyonunu al
folderInfoCollection = personalStorage.root_folder.get_sub_folders()

# Klasörlerin bilgilerini ayıkla
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))

Python’da Bir PST Dosyasından Mesajları Çıkarın

Mesajlar, MS Outlook gibi Microsoft programları tarafından PST dosyalarında depolanan ana varlıklardır. Öyleyse, Python’da bir PST dosyasından mesajların nasıl çıkarılacağını görelim.

  • PersonalStorage.fromfile() yöntemini kullanarak PST dosyasını yükleyin.
  • PersonalStorage.rootfolder.getsubfolder() yöntemini kullanarak bir nesnedeki istenen klasörün referansını alın.
  • getcontents() yöntemini kullanarak ileti koleksiyonunu alın.
  • Koleksiyondaki mesajlar arasında dolaşın ve her mesajın alanlarını okuyun.

Aşağıdaki kod örneği, Python’da bir PST dosyasından mesajların nasıl çıkarılacağını gösterir.

from aspose.email import PersonalStorage

# PST dosyasını yükle
sourcePst = PersonalStorage.from_file("Outlook.pst")

# İstenilen klasörü seçin
sourceFolder = sourcePst.root_folder.get_sub_folder("Inbox")

# Klasördeki içeriği al
messageInfoCollection = sourceFolder.get_contents()

# Klasördeki iletiler arasında geçiş yap
for messageInfo in messageInfoCollection:
        print ("Subject: " + messageInfo.subject)
        print("To: " + messageInfo.display_to)

Kişileri Python’daki bir PST Dosyasından Çıkarın

Bazı durumlarda, kişilerin bir PST dosyasında saklanan bilgilerini çıkarmanız gerekebilir. Aşağıdaki adımlar, Python’da bir PST dosyasındaki kişilere nasıl erişileceğini gösterir.

  • PersonalStorage.fromfile() yöntemini kullanarak PST dosyasını yükleyin.
  • getpredefinedfolder(StandardIpmFolder.CONTACTS) yöntemini kullanarak kişiler klasörünün referansını alın.
  • getcontents() yöntemini kullanarak kişi koleksiyonunu alın.
  • Koleksiyonda dolaşın ve her bir kişiyi okuyun veya kaydedin.

Aşağıdaki kod örneği, Python’da bir PST dosyasından kişilerin nasıl çıkarılacağını gösterir.

from aspose.email import PersonalStorage, StandardIpmFolder, ContactSaveFormat

# PST dosyasını yükle
pst = PersonalStorage.from_file("SampleContacts_out.pst")

# Kişiler klasörünü seçin				
folderInfo = pst.get_predefined_folder(StandardIpmFolder.CONTACTS)

# Kişileri al
contactCollection = folderInfo.get_contents()

# Kişiler koleksiyonunda döngü
for  messageInfo in contactCollection:

    # iletişim bilgilerini al
    mapi = pst.extract_message(messageInfo)

    contact = mapi.to_mapi_message_item()

    # Bazı içerikleri ekranda göster
    print("Name: " + contact.name_info.display_name)

    # MSG Formatında diske kaydet
    if contact.name_info.display_name is not None:
        # Kişiyi kaydet
        contact.save("Contacts\\" + contact.name_info.display_name + "_out.msg")
        contact.save("Contacts\\" + contact.name_info.display_name + "_out.vcf", ContactSaveFormat.VCARD)

Ücretsiz API Lisansı Alın

Aspose.Email for Python’u geçici bir lisans alarak ücretsiz olarak deneyebilirsiniz.

Çözüm

Bu makalede, Python’da PST dosyalarının nasıl ayrıştırılacağını öğrendiniz. Ayrıca, Python’da programlı olarak bir PST dosyasından kişileri ve mesajları nasıl çıkaracağınızı gördünüz. Ayrıca, belgelemeyi kullanarak Aspose.Email hakkında daha fazlasını keşfedebilirsiniz. Ayrıca sorularınızı veya sorularınızı forumumuzda paylaşabilirsiniz.

Ayrıca bakınız