แยกไฟล์ Outlook PST ใน Python

PST (ตารางที่เก็บข้อมูลส่วนตัว) เป็นรูปแบบไฟล์ที่เก็บข้อมูลที่ใช้โดยโปรแกรมต่างๆ ของ Microsoft ไฟล์ PST สามารถเก็บข้อมูลข้อความ ผู้ติดต่อ ปฏิทิน กิจกรรม ฯลฯ มันถูกใช้งานโดยซอฟต์แวร์ยอดนิยมของ Microsoft เช่น MS Outlook, Exchange และ Windows Messaging ในบางกรณี คุณอาจต้องแยกวิเคราะห์ไฟล์ PST และแยกข้อมูลจากไฟล์โดยใช้โปรแกรม บทความนี้จึงแสดงวิธีแยกไฟล์ PST จากภายในแอปพลิเคชัน Python

Python Library เพื่อแยกวิเคราะห์ไฟล์ PST

ในการแยกวิเคราะห์ไฟล์ PST เราจะใช้ Aspose.Email for Python เป็นไลบรารี Python อันทรงพลังที่ให้คุณใช้งานไคลเอนต์อีเมลที่มีคุณสมบัติหลากหลายได้อย่างราบรื่น นอกจากนี้ยังช่วยให้คุณทำงานกับอีเมลและรูปแบบพื้นที่เก็บข้อมูลยอดนิยม คุณสามารถติดตั้งไลบรารีได้จาก PyPI โดยใช้คำสั่งต่อไปนี้

> pip install Aspose.Email-for-Python-via-NET

แยกวิเคราะห์ไฟล์ PST ใน Python

ต่อไปนี้เป็นขั้นตอนในการแยกวิเคราะห์ไฟล์ PST และแยกข้อมูลใน Python

  • โหลดไฟล์ PST โดยใช้วิธี PersonalStorage.fromfile()
  • รับคอลเลกชันโฟลเดอร์ใน PST โดยใช้วิธี PersonalStorage.rootfolder.getsubfolders()
  • ดึงข้อมูลของโฟลเดอร์ เช่น ชื่อ จำนวนรายการ เป็นต้น

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแยกวิเคราะห์ไฟล์ PST และดึงข้อมูลของโฟลเดอร์

from aspose.email import PersonalStorage

# โหลดไฟล์ PST
personalStorage = PersonalStorage.from_file("Outlook.pst")

# รับคอลเลกชันของโฟลเดอร์
folderInfoCollection = personalStorage.root_folder.get_sub_folders()

# แยกข้อมูลของโฟลเดอร์
for folderInfo in folderInfoCollection:
	print("Folder: " + folderInfo.display_name)
	print("Total Items: " + str(folderInfo.content_count))
	print("Total Unread Items: " + str(folderInfo.content_unread_count))

แยกข้อความจากไฟล์ PST ใน Python

ข้อความเป็นเอนทิตีหลักที่จัดเก็บไว้ในไฟล์ PST โดยโปรแกรม Microsoft เช่น MS Outlook มาดูวิธีแยกข้อความจากไฟล์ PST ใน Python

  • โหลดไฟล์ PST โดยใช้วิธี PersonalStorage.fromfile()
  • รับการอ้างอิงของโฟลเดอร์ที่ต้องการในวัตถุโดยใช้เมธอด PersonalStorage.rootfolder.getsubfolder()
  • รับการรวบรวมข้อความโดยใช้เมธอด getcontent()
  • วนซ้ำข้อความในคอลเลกชั่นและอ่านฟิลด์ของแต่ละข้อความ

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแยกข้อความจากไฟล์ PST ใน Python

from aspose.email import PersonalStorage

# โหลดไฟล์ PST
sourcePst = PersonalStorage.from_file("Outlook.pst")

# เลือกโฟลเดอร์ที่ต้องการ
sourceFolder = sourcePst.root_folder.get_sub_folder("Inbox")

# รับเนื้อหาในโฟลเดอร์
messageInfoCollection = sourceFolder.get_contents()

# วนซ้ำข้อความในโฟลเดอร์
for messageInfo in messageInfoCollection:
        print ("Subject: " + messageInfo.subject)
        print("To: " + messageInfo.display_to)

แยกผู้ติดต่อออกจากไฟล์ PST ใน Python

ในบางกรณี คุณอาจต้องแยกข้อมูลผู้ติดต่อที่จัดเก็บไว้ในไฟล์ PST ขั้นตอนต่อไปนี้แสดงวิธีการเข้าถึงผู้ติดต่อในไฟล์ PST ใน Python

  • โหลดไฟล์ PST โดยใช้วิธี PersonalStorage.fromfile()
  • รับการอ้างอิงของโฟลเดอร์ผู้ติดต่อโดยใช้เมธอด getpredefinedfolder(StandardIpmFolder.CONTACTS)
  • รับการรวบรวมผู้ติดต่อโดยใช้เมธอด getcontent()
  • วนซ้ำคอลเลกชันและอ่านผู้ติดต่อแต่ละรายหรือบันทึก

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแยกผู้ติดต่อจากไฟล์ PST ใน Python

from aspose.email import PersonalStorage, StandardIpmFolder, ContactSaveFormat

# โหลดไฟล์ PST
pst = PersonalStorage.from_file("SampleContacts_out.pst")

# เลือกโฟลเดอร์ผู้ติดต่อ				
folderInfo = pst.get_predefined_folder(StandardIpmFolder.CONTACTS)

# รับรายชื่อ
contactCollection = folderInfo.get_contents()

# วนซ้ำคอลเลกชันที่ติดต่อ
for  messageInfo in contactCollection:

    # รับข้อมูลการติดต่อ
    mapi = pst.extract_message(messageInfo)

    contact = mapi.to_mapi_message_item()

    # แสดงเนื้อหาบางส่วนบนหน้าจอ
    print("Name: " + contact.name_info.display_name)

    # บันทึกลงแผ่นดิสก์ในรูปแบบผงชูรส
    if contact.name_info.display_name is not None:
        # บันทึกผู้ติดต่อ
        contact.save("Contacts\\" + contact.name_info.display_name + "_out.msg")
        contact.save("Contacts\\" + contact.name_info.display_name + "_out.vcf", ContactSaveFormat.VCARD)

รับใบอนุญาต API ฟรี

คุณสามารถลองใช้ Aspose.Email for Python ได้ฟรีโดย ขอรับใบอนุญาตชั่วคราว

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีแยกวิเคราะห์ไฟล์ PST ใน Python นอกจากนี้ คุณได้เห็นวิธีดึงข้อมูลผู้ติดต่อและข้อความจากไฟล์ PST โดยทางโปรแกรมใน Python นอกจากนี้ คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับ Aspose.Email โดยใช้ เอกสารประกอบ นอกจากนี้ คุณสามารถแบ่งปันคำถามหรือข้อสงสัยของคุณบน ฟอรัม ของเรา

ดูสิ่งนี้ด้วย