Baca File MS Outlook PST di Jawa

PST (Personal Storage Table) adalah format file terkenal yang digunakan untuk tujuan penyimpanan oleh berbagai program Microsoft seperti MS Outlook, Exchange, dan Windows Messaging. File PST dapat menyimpan pesan, kontak, dan informasi tentang item lain seperti kalender, acara, dll. Dalam kasus tertentu, Anda mungkin perlu mengurai file PST dan mengekstrak data darinya secara terprogram. Untuk mencapainya, artikel ini menunjukkan cara membaca file Outlook PST di Java. Dengan bantuan contoh kode, Anda akan mempelajari cara mengekstrak informasi folder, membaca email, dan mengambil kontak dari file PST.

Java API untuk Memproses File PST Outlook - Unduhan Gratis

Aspose.Email for Java adalah API pemrosesan email yang populer dan kaya fitur untuk membuat dan mengirim email. Selain itu, ini memungkinkan Anda bekerja dengan klien email populer dan format file penyimpanan. Pada artikel ini, kami akan menggunakan Aspose.Email for Java untuk membaca pesan dan informasi lain dari file PST. Anda dapat mengunduh API atau menginstalnya menggunakan konfigurasi Maven berikut.

Gudang:

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

Ketergantungan:

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

Baca File PST Outlook di Jawa

Berikut ini adalah langkah-langkah untuk membaca file PST dan mengekstrak informasinya di Java.

Contoh kode berikut menunjukkan cara membaca file PST dan mengambil informasi folder di Java.

// Muat file Outlook PST
PersonalStorage pst = PersonalStorage.fromFile("PersonalStorage.pst");

// Dapatkan informasi folder
FolderInfoCollection folderInfoCollection = pst.getRootFolder().getSubFolders();

// Jelajahi setiap folder untuk menampilkan informasi
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 Baca Email dari PST

Berikut ini adalah langkah-langkah untuk membaca pesan email dari file PST di Java.

Contoh kode berikut menunjukkan cara mengekstrak pesan dari file PST di Java.

// Muat file Outlook PST
PersonalStorage pst = PersonalStorage.fromFile(path);

// Dapatkan Format Tampilan file PST
System.out.println("Display Format: " + pst.getFormat());

// Dapatkan informasi folder dan pesan
FolderInfo folderInfo = pst.getRootFolder();

// Panggil metode rekursif untuk mengekstrak file msg dari setiap folder
extractMsgFiles(folderInfo, pst);

// Ini adalah metode rekursif untuk menampilkan isi folder
private static void extractMsgFiles(FolderInfo folderInfo, PersonalStorage pst) {
    // menampilkan nama folder
    System.out.println("Folder: " + folderInfo.getDisplayName());
    System.out.println("==================================");
    
    // Ulangi semua pesan di folder ini
    MessageInfoCollection messageInfoCollection = folderInfo.getContents();
    
   for (MessageInfo messageInfo : messageInfoCollection) {
        System.out.println("Saving message {0} ...." + messageInfo.getSubject());
        
        // Dapatkan pesan dalam contoh MapiMessage
        MapiMessage message = pst.extractMessage(messageInfo);
        
        // Simpan pesan ini ke disk dalam format pesan
        message.save(message.getSubject().replace(":", " ") + ".msg");
        
        // Simpan pesan ini untuk streaming dalam format pesan
        ByteArrayOutputStream messageStream = new ByteArrayOutputStream();
        message.save(messageStream);
    }

    // Panggil metode ini secara rekursif untuk setiap subfolder
    if (folderInfo.hasSubFolders() == true) {
       for (FolderInfo subfolderInfo : folderInfo.getSubFolders()) {
            extractMsgFiles(subfolderInfo, pst);
        }
    }
}

Baca Kontak dari PST di Jawa

Dalam kasus tertentu, Anda mungkin perlu mengekstrak informasi kontak yang disimpan dalam file PST. Langkah-langkah berikut menunjukkan cara mengakses kontak dalam file PST di Java.

Contoh kode berikut menunjukkan cara mengekstrak kontak dari file PST di Java.

// Muat file Outlook PST
PersonalStorage pst = PersonalStorage.fromFile("SampleContacts.pst");

// Dapatkan folder Kontak
FolderInfo folderInfo = pst.getRootFolder().getSubFolder("Contacts");

// Ulangi semua kontak di folder ini
MessageInfoCollection messageInfoCollection = folderInfo.getContents();

for (int i = 0; i < messageInfoCollection.size(); i++) {
	MessageInfo messageInfo = (MessageInfo) messageInfoCollection.get_Item(i);
	
  //  Dapatkan informasi kontak
	MapiContact contact = (MapiContact) pst.extractMessage(messageInfo).toMapiMessageItem();
	
  //  Menampilkan beberapa konten di layar
	System.out.println("Name: " + contact.getNameInfo().getDisplayName() + "\n");
	
  //  Simpan ke disk dalam format MSG
	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");
	}
}

Java API untuk Membaca File Outlook PST - Dapatkan Lisensi Gratis

Anda dapat mencoba Aspose.Email for Java secara gratis dengan mendapatkan lisensi sementara.

Kesimpulan

Pada artikel ini, Anda telah mempelajari cara membaca file PST secara terprogram di Java. Selain itu, Anda telah melihat cara mengekstrak informasi folder, mengambil email, dan mengambil kontak dari file PST di Java. Selain itu, Anda dapat mempelajari lebih lanjut tentang Aspose.Email for Java menggunakan dokumentasi. Selain itu, jika Anda memiliki pertanyaan atau permintaan, silakan beri tahu kami melalui forum kami.

Lihat juga