قراءة ملفات MS Outlook PST في Java

PST (جدول التخزين الشخصي) هو تنسيق ملف معروف جيدًا يستخدم لأغراض التخزين بواسطة برامج Microsoft المختلفة مثل MS Outlook و Exchange و Windows Messaging. يمكن لملفات PST تخزين الرسائل وجهات الاتصال والمعلومات حول عناصر أخرى مثل التقويمات والأحداث وما إلى ذلك. في بعض الحالات ، قد تحتاج إلى تحليل ملف PST واستخراج البيانات منه برمجيًا. لتحقيق ذلك ، توضح هذه المقالة كيفية قراءة ملفات Outlook PST في Java. بمساعدة نماذج التعليمات البرمجية ، ستتعلم كيفية استخراج معلومات المجلدات وقراءة رسائل البريد الإلكتروني وجلب جهات الاتصال من ملف PST.

Java API لمعالجة ملف Outlook PST - تنزيل مجاني

Aspose.Email for Java هو واجهة برمجة تطبيقات معالجة بريد إلكتروني مشهورة وغنية بالمميزات لإنشاء وإرسال رسائل البريد الإلكتروني. بالإضافة إلى ذلك ، يتيح لك العمل مع عملاء البريد الإلكتروني المشهورين وتنسيقات ملفات التخزين. في هذه المقالة ، سوف نستخدم Aspose.Email لجافا لقراءة الرسائل والمعلومات الأخرى من ملفات 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>

اقرأ ملف Outlook PST في Java

فيما يلي خطوات قراءة ملف PST واستخراج معلوماته في Java.

يوضح نموذج التعليمات البرمجية التالي كيفية قراءة ملف PST وجلب معلومات المجلدات في Java.

// قم بتحميل ملف Outlook PST
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("-----------------------------------");
}

جافا قراءة رسائل البريد الإلكتروني من PST

فيما يلي خطوات قراءة رسائل البريد الإلكتروني من ملف PST في Java.

  • قم بتحميل ملف PST باستخدام طريقة PersonalStorage.fromFile().
  • قم بالوصول إلى المجلد الجذر باستخدام طريقة PersonalStorage.getRootFolder().
  • احصل على مجموعة رسائل من كل مجلد فرعي باستخدام طريقة FolderInfo.getContents().
  • قم بالتكرار خلال الرسائل الموجودة في المجموعة واقرأ حقول كل رسالة.

يوضح نموذج التعليمات البرمجية التالي كيفية استخراج الرسائل من ملف PST في Java.

// قم بتحميل ملف Outlook PST
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. توضح الخطوات التالية كيفية الوصول إلى جهات الاتصال في ملف PST في Java.

يوضح نموذج التعليمات البرمجية التالي كيفية استخراج جهات الاتصال من ملف PST في Java.

// قم بتحميل ملف Outlook PST
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 لقراءة ملف Outlook PST - احصل على ترخيص مجاني

يمكنك تجربة Aspose.Email لجافا مجانًا من خلال الحصول على ترخيص مؤقت.

استنتاج

في هذه المقالة ، تعلمت كيفية قراءة ملفات PST برمجيًا في Java. علاوة على ذلك ، لقد رأيت كيفية استخراج معلومات المجلد وجلب رسائل البريد الإلكتروني واسترداد جهات الاتصال من ملف PST في Java. بالإضافة إلى ذلك ، يمكنك استكشاف المزيد حول Aspose.Email لجافا باستخدام التوثيق. أيضًا ، إذا كان لديك أي أسئلة أو استفسارات ، فلا تتردد في إخبارنا عبر المنتدى.

أنظر أيضا