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ığı
- Python’da bir PST Dosyasını Ayrıştırın
- Bir PST Dosyasından Mesajları Çıkarın
- Kişileri bir PST Dosyasından Çıkarın
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.