فایل های MS Outlook PST را در جاوا بخوانید

PST (Personal Storage Table) یک فرمت فایل شناخته شده است که برای اهداف ذخیره سازی توسط برنامه های مختلف مایکروسافت مانند MS Outlook، Exchange و Windows Messaging استفاده می شود. فایل‌های PST می‌توانند پیام‌ها، مخاطبین و اطلاعات مربوط به موارد دیگر مانند تقویم، رویدادها و غیره را ذخیره کنند. در موارد خاص، ممکن است لازم باشد یک فایل PST را تجزیه کنید و داده‌ها را به صورت برنامه‌ریزی از آن استخراج کنید. برای دستیابی به آن، این مقاله نحوه خواندن فایل های Outlook PST را در جاوا نشان می دهد. با کمک نمونه کد، نحوه استخراج اطلاعات پوشه ها، خواندن ایمیل ها و واکشی مخاطبین از یک فایل PST را خواهید آموخت.

Java API برای پردازش فایل PST Outlook - دانلود رایگان

Aspose.Email for Java یک API پردازش ایمیل محبوب و غنی برای ایجاد و ارسال ایمیل است. علاوه بر این، به شما امکان می دهد با کلاینت های ایمیل محبوب و فرمت های فایل ذخیره سازی کار کنید. در این مقاله از 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 را در جاوا بخوانید

در ادامه مراحل خواندن فایل PST و استخراج اطلاعات آن در جاوا آمده است.

نمونه کد زیر نحوه خواندن یک فایل PST و واکشی اطلاعات پوشه ها در جاوا را نشان می دهد.

// فایل 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 در جاوا آمده است.

  • فایل PST را با استفاده از روش PersonalStorage.fromFile() بارگیری کنید.
  • با استفاده از روش PersonalStorage.getRootFolder() به پوشه ریشه دسترسی پیدا کنید.
  • با استفاده از روش FolderInfo.getContents() مجموعه پیام را از هر زیرپوشه دریافت کنید.
  • پیام‌های موجود در مجموعه را مرور کنید و فیلدهای هر پیام را بخوانید.

نمونه کد زیر نحوه استخراج پیام ها از فایل PST در جاوا را نشان می دهد.

// فایل Outlook PST را بارگیری کنید
PersonalStorage pst = PersonalStorage.fromFile(path);

// فرمت نمایش فایل PST را دریافت کنید
System.out.println("Display Format: " + pst.getFormat());

// اطلاعات پوشه ها و پیام ها را دریافت کنید
FolderInfo folderInfo = pst.getRootFolder();

// برای استخراج فایل های پیام از هر پوشه، روش بازگشتی را فراخوانی کنید
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");
        
        // این پیام را برای پخش در قالب پیام ذخیره کنید
        ByteArrayOutputStream messageStream = new ByteArrayOutputStream();
        message.save(messageStream);
    }

    // این متد را به صورت بازگشتی برای هر زیر پوشه فراخوانی کنید
    if (folderInfo.hasSubFolders() == true) {
       for (FolderInfo subfolderInfo : folderInfo.getSubFolders()) {
            extractMsgFiles(subfolderInfo, pst);
        }
    }
}

مخاطبین را از PST در جاوا بخوانید

در موارد خاص، ممکن است لازم باشد اطلاعات مخاطبین ذخیره شده در یک فایل PST را استخراج کنید. مراحل زیر نحوه دسترسی به مخاطبین یک فایل PST در جاوا را نشان می دهد.

نمونه کد زیر نحوه استخراج مخاطبین از فایل PST در جاوا را نشان می دهد.

// فایل Outlook PST را بارگیری کنید
PersonalStorage pst = PersonalStorage.fromFile("SampleContacts.pst");

// پوشه Contacts را دریافت کنید
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 به صورت برنامه نویسی در جاوا آشنا شدید. علاوه بر این، نحوه استخراج اطلاعات پوشه، واکشی ایمیل ها و بازیابی مخاطبین از یک فایل PST در جاوا را دیده اید. علاوه بر این، می‌توانید با استفاده از مستندات درباره Aspose.Email برای جاوا بیشتر کاوش کنید. همچنین، در صورت داشتن هرگونه سؤال یا سؤال، از طریق [فروم 14 ما با ما در میان بگذارید.

همچنین ببینید