Java'da MS Outlook PST Dosyalarını Okuyun

PST (Kişisel Depolama Tablosu), MS Outlook, Exchange ve Windows Messaging gibi farklı Microsoft programları tarafından depolama amacıyla kullanılan iyi bilinen bir dosya biçimidir. PST dosyaları, mesajları, kişileri ve takvimler, etkinlikler vb. diğer öğeler hakkındaki bilgileri depolayabilir. Bazı durumlarda, bir PST dosyasını ayrıştırmanız ve ondan programlı olarak veri almanız gerekebilir. Bunu başarmak için bu makale, Java’da Outlook PST dosyalarının nasıl okunacağını gösterir. Kod örneklerinin yardımıyla, klasörlerin bilgilerini nasıl çıkaracağınızı, e-postaları nasıl okuyacağınızı ve bir PST dosyasından kişileri nasıl alacağınızı öğreneceksiniz.

Outlook PST Dosyasını İşleyecek Java API’si - Ücretsiz İndirme

Aspose.Email for Java, e-posta oluşturmak ve göndermek için popüler ve zengin özelliklere sahip bir e-posta işleme API’sidir. Ayrıca, popüler e-posta istemcileri ve depolama dosyası biçimleriyle çalışmanıza olanak tanır. Bu yazıda, PST dosyalarından mesajları ve diğer bilgileri okumak için Aspose.Email for Java’yı kullanacağız. API’yi indirebilir veya aşağıdaki Maven yapılandırmalarını kullanarak yükleyebilirsiniz.

Depo:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>

Bağımlılık:

    <groupId>com.aspose</groupId>
    <artifactId>aspose-email</artifactId>
    <version>22.3</version>
    <classifier>jdk16</classifier>
</dependency>

Java’da bir Outlook PST Dosyasını Okuyun

Aşağıdakiler, bir PST dosyasını okumak ve Java’daki bilgilerini çıkarmak için gereken adımlardır.

Aşağıdaki kod örneği, Java’da bir PST dosyasının nasıl okunacağını ve klasör bilgilerinin nasıl alınacağını gösterir.

// Outlook PST dosyasını yükleyin
PersonalStorage pst = PersonalStorage.fromFile("PersonalStorage.pst");

// Klasör bilgilerini al
FolderInfoCollection folderInfoCollection = pst.getRootFolder().getSubFolders();

// Bilgileri görüntülemek için her klasöre göz atın
for (int i = 0; i < folderInfoCollection.size(); i++) {
	FolderInfo folderInfo = (FolderInfo) folderInfoCollection.get_Item(i);
	System.out.println("FolderId: " + folderInfo.getEntryIdString());
	System.out.println("Folder: " + folderInfo.getDisplayName());
	System.out.println("Total items: " + folderInfo.getContentCount());
	System.out.println("Total unread items: " + folderInfo.getContentUnreadCount());
	System.out.println("-----------------------------------");
}

Java Bir PST’den E-postaları Oku

Aşağıda, Java’daki bir PST dosyasından e-posta mesajlarını okuma adımları yer almaktadır.

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

// Outlook PST dosyasını yükleyin
PersonalStorage pst = PersonalStorage.fromFile(path);

// PST dosyasının Ekran Formatını Alın
System.out.println("Display Format: " + pst.getFormat());

// Klasörleri ve mesaj bilgilerini alın
FolderInfo folderInfo = pst.getRootFolder();

// Her klasörden mesaj dosyalarını ayıklamak için özyinelemeli yöntemi çağırın
extractMsgFiles(folderInfo, pst);

// Bu, bir klasörün içeriğini görüntülemek için özyinelemeli bir yöntemdir
private static void extractMsgFiles(FolderInfo folderInfo, PersonalStorage pst) {
    // klasör adını göster
    System.out.println("Folder: " + folderInfo.getDisplayName());
    System.out.println("==================================");
    
    // Bu klasördeki tüm iletiler arasında dolaşın
    MessageInfoCollection messageInfoCollection = folderInfo.getContents();
    
   for (MessageInfo messageInfo : messageInfoCollection) {
        System.out.println("Saving message {0} ...." + messageInfo.getSubject());
        
        // Mesajı MapiMessage örneğinde alın
        MapiMessage message = pst.extractMessage(messageInfo);
        
        // Bu mesajı msg formatında diske kaydedin
        message.save(message.getSubject().replace(":", " ") + ".msg");
        
        // msg formatında akış için bu mesajı kaydedin
        ByteArrayOutputStream messageStream = new ByteArrayOutputStream();
        message.save(messageStream);
    }

    // Her alt klasör için bu yöntemi yinelemeli olarak çağırın
    if (folderInfo.hasSubFolders() == true) {
       for (FolderInfo subfolderInfo : folderInfo.getSubFolders()) {
            extractMsgFiles(subfolderInfo, pst);
        }
    }
}

Kişileri Java’daki bir PST’den okuyun

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

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

// Outlook PST dosyasını yükleyin
PersonalStorage pst = PersonalStorage.fromFile("SampleContacts.pst");

// Kişiler klasörünü alın
FolderInfo folderInfo = pst.getRootFolder().getSubFolder("Contacts");

// Bu klasördeki tüm kişiler arasında dolaşın
MessageInfoCollection messageInfoCollection = folderInfo.getContents();

for (int i = 0; i < messageInfoCollection.size(); i++) {
	MessageInfo messageInfo = (MessageInfo) messageInfoCollection.get_Item(i);
	
  //  İletişim bilgilerini alın
	MapiContact contact = (MapiContact) pst.extractMessage(messageInfo).toMapiMessageItem();
	
  //  Bazı içerikleri ekranda göster
	System.out.println("Name: " + contact.getNameInfo().getDisplayName() + "\n");
	
  //  MSG formatında diske kaydet
	if (contact.getNameInfo().getDisplayName() != null) {
		MapiMessage message = pst.extractMessage(messageInfo); // Get rid of illegal characters that cannot be used as a file name
		String messageName = message.getSubject().replace(":", " ").replace("\\", " ").replace("?", " ").replace("/", " ");
		message.save(messageName + ".msg");
	}
}

Outlook PST Dosyasını Okumak için Java API’si - Ücretsiz Lisans Alın

Geçici bir lisans alarak Aspose.Email for Java’yı ücretsiz deneyebilirsiniz.

Çözüm

Bu makalede, PST dosyalarını Java’da programlı olarak nasıl okuyacağınızı öğrendiniz. Ayrıca, Java’da bir PST dosyasından klasör bilgilerini nasıl çıkaracağınızı, e-postaları nasıl alacağınızı ve kişileri nasıl alacağınızı gördünüz. Ek olarak, documentation kullanarak Aspose.Email for Java hakkında daha fazlasını keşfedebilirsiniz. Ayrıca, herhangi bir sorunuz veya sorunuz olması durumunda, [forumumuz] aracılığıyla bize bildirmekten çekinmeyin]14.

Ayrıca bakınız