קרא קבצי MS Outlook PST ב-Java

PST (Personal Storage Table) הוא פורמט קובץ ידוע המשמש למטרות אחסון על ידי תוכניות שונות של מיקרוסופט כגון MS Outlook, Exchange ו-Windows Messaging. קובצי PST יכולים לאחסן הודעות, אנשי קשר ומידע על פריטים אחרים כגון לוחות שנה, אירועים וכו’. במקרים מסוימים, ייתכן שיהיה עליך לנתח קובץ PST ולחלץ ממנו נתונים באופן תוכנתי. כדי להשיג זאת, מאמר זה מראה כיצד לקרוא קבצי Outlook PST ב-Java. בעזרת דוגמאות קוד, תלמדו כיצד לחלץ מידע של תיקיות, לקרוא מיילים ולהביא אנשי קשר מקובץ PST.

Java API לעיבוד קובץ PST של Outlook - הורדה חינם

Aspose.Email for Java הוא ממשק API לעיבוד דוא"ל פופולרי ועשיר בתכונות ליצירה ושליחה של אימיילים. בנוסף, זה מאפשר לך לעבוד עם לקוחות דוא"ל פופולריים ופורמטים של קבצי אחסון. במאמר זה, נשתמש ב-Aspose.Email עבור Java כדי לקרוא הודעות ומידע אחר מקובצי PST. אתה יכול להוריד את ה-API או להתקין אותו באמצעות התצורות הבאות של Maven.

מאגר:

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

תלות:

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

קרא קובץ PST של Outlook ב-Java

להלן השלבים לקריאת קובץ PST ולחלץ את המידע שלו ב-Java.

דוגמת הקוד הבאה מראה כיצד לקרוא קובץ PST ולאחזר מידע של תיקיות ב-Java.

// טען את קובץ PST של Outlook
PersonalStorage pst = PersonalStorage.fromFile("PersonalStorage.pst");

// קבל את מידע התיקיות
FolderInfoCollection folderInfoCollection = pst.getRootFolder().getSubFolders();

// עיין בכל תיקיה כדי להציג מידע
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 קרא אימיילים מ-PST

להלן השלבים לקריאת הודעות דואר אלקטרוני מקובץ PST ב-Java.

דוגמת הקוד הבאה מראה כיצד לחלץ הודעות מקובץ PST ב-Java.

// טען את קובץ PST של Outlook
PersonalStorage pst = PersonalStorage.fromFile(path);

// קבל את פורמט התצוגה של קובץ ה-PST
System.out.println("Display Format: " + pst.getFormat());

// קבל את המידע על התיקיות וההודעות
FolderInfo folderInfo = pst.getRootFolder();

// קרא לשיטה הרקורסיבית כדי לחלץ קבצי msg מכל תיקיה
extractMsgFiles(folderInfo, pst);

// זוהי שיטה רקורסיבית להצגת תוכן של תיקיה
private static void extractMsgFiles(FolderInfo folderInfo, PersonalStorage pst) {
    // להציג את שם התיקיה
    System.out.println("Folder: " + folderInfo.getDisplayName());
    System.out.println("==================================");
    
    // עברו בלולאה בין כל ההודעות בתיקייה זו
    MessageInfoCollection messageInfoCollection = folderInfo.getContents();
    
   for (MessageInfo messageInfo : messageInfoCollection) {
        System.out.println("Saving message {0} ...." + messageInfo.getSubject());
        
        // קבל את ההודעה במופע MapiMessage
        MapiMessage message = pst.extractMessage(messageInfo);
        
        // שמור הודעה זו בדיסק בפורמט msg
        message.save(message.getSubject().replace(":", " ") + ".msg");
        
        // שמור הודעה זו כדי להזרים בפורמט msg
        ByteArrayOutputStream messageStream = new ByteArrayOutputStream();
        message.save(messageStream);
    }

    // קרא לשיטה זו באופן רקורסיבי עבור כל תיקיית משנה
    if (folderInfo.hasSubFolders() == true) {
       for (FolderInfo subfolderInfo : folderInfo.getSubFolders()) {
            extractMsgFiles(subfolderInfo, pst);
        }
    }
}

קרא אנשי קשר מ-PST ב-Java

במקרים מסוימים, ייתכן שיהיה עליך לחלץ את פרטי אנשי הקשר המאוחסנים בקובץ PST. השלבים הבאים מראים כיצד לגשת לאנשי הקשר בקובץ PST ב-Java.

דוגמת הקוד הבאה מראה כיצד לחלץ אנשי קשר מקובץ PST ב-Java.

// טען את קובץ PST של Outlook
PersonalStorage pst = PersonalStorage.fromFile("SampleContacts.pst");

// קבל את תיקיית אנשי הקשר
FolderInfo folderInfo = pst.getRootFolder().getSubFolder("Contacts");

// עברו בלולאה בין כל אנשי הקשר בתיקייה זו
MessageInfoCollection messageInfoCollection = folderInfo.getContents();

for (int i = 0; i < messageInfoCollection.size(); i++) {
	MessageInfo messageInfo = (MessageInfo) messageInfoCollection.get_Item(i);
	
  //  קבל את פרטי הקשר
	MapiContact contact = (MapiContact) pst.extractMessage(messageInfo).toMapiMessageItem();
	
  //  הצג חלק מהתוכן על המסך
	System.out.println("Name: " + contact.getNameInfo().getDisplayName() + "\n");
	
  //  שמור בדיסק בפורמט 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 לקריאת קובץ PST של Outlook - קבל רישיון חינם

אתה יכול לנסות את Aspose.Email עבור Java בחינם על ידי קבלת רישיון זמני.

סיכום

במאמר זה, למדת כיצד לקרוא קבצי PST באופן פרוגרמטי ב-Java. יתר על כן, ראית כיצד לחלץ מידע תיקיות, להביא מיילים ולאחזר אנשי קשר מקובץ PST ב-Java. בנוסף, אתה יכול לחקור יותר על Aspose.Email עבור Java באמצעות תיעוד. כמו כן, למקרה שיהיו לך שאלות או שאילתות כלשהן, אל תהסס ליידע אותנו דרך הפורום שלנו.

ראה גם