แปลง OLM เป็น PST
แปลง OLM เป็น PST
OLM (Outlook for Mac) เป็นรูปแบบไฟล์ที่ Microsoft Outlook for Mac ใช้เพื่อจัดเก็บข้อความอีเมล, ผู้ติดต่อ, ปฏิทิน, งาน และข้อมูลอื่น ๆ มันเป็นรูปแบบไฟล์พื้นฐานของ Outlook for Mac ดังนั้นจึงไม่สามารถเปิดไฟล์ Outlook for Mac (OLM) ใน Outlook for Windows ได้ เพื่อทำงานกับไฟล์ OLM ใน Windows, Aspose Email มีเครื่องมือที่ออกแบบมาโดยเฉพาะสำหรับจัดการไฟล์ OLM วิธีการของมันคือการแปลงไฟล์ OLM เป็นรูปแบบ PST (Outlook Data File) ซึ่งได้รับการสนับสนุนอย่างกว้างขวางในสภาพแวดล้อม Windows เมื่อแปลงเป็นรูปแบบ PST แล้ว คุณสามารถนำเข้าข้อมูลเข้าสู่ Outlook for Windows หรือไคลเอนต์อีเมลที่เข้ากันได้อื่น ๆ.
วิธีการหลัก
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแปลงไฟล์ OLM ของ Outlook เป็นไฟล์ PST โดยใช้ไลบรารี Aspose.Email โดยอ่านแต่ละโฟลเดอร์และข้อความที่สอดคล้องจากไฟล์ OLM แล้วเพิ่มลงในไฟล์ PST ใหม่ตามลำดับเดียวกัน.
- สร้างอินสแตนซ์ของ OlmStorage คลาสสำหรับเปิดไฟล์ OLM แหล่งที่มา.
- ใช้ PersonalStorage.create วิธีการสร้างไฟล์ PST ใหม่โดยระบุชื่อไฟล์และเวอร์ชันรูปแบบ.
- อ่านแต่ละโฟลเดอร์และข้อความของมันจากไฟล์ OLM อย่างเรียกซ้ำ.
- ใช้ฟังก์ชัน add_to_pst เพื่อเพิ่มแต่ละโฟลเดอร์และข้อความของมันลงในไฟล์ PST โดยคงโครงสร้างเดิมไว้.
import aspose.email as ae
olm = ae.storage.olm.OlmStorage("my.olm")
pst = ae.storage.pst.PersonalStorage.create("my.pst", ae.storage.pst.FileFormatVersion.UNICODE)
for folder in olm.folder_hierarchy:
add_to_pst(pst.root_folder, folder)
โค้ดนี้เป็นสคริปต์หลักสำหรับเริ่มต้นกระบวนการแปลงไฟล์ OLM เป็นไฟล์ PST ด้วยไลบรารี aspose.email แสดงวิธีเปิดไฟล์ OLM, สร้างไฟล์ PST ใหม่, และเรียกฟังก์ชัน add_to_pst เพื่อดำเนินการโอนย้ายข้อมูล สคริปต์นี้ทำหน้าที่เป็นจุดเริ่มต้นของการย้ายข้อมูลโดยใช้ฟังก์ชันอย่างมีประสิทธิภาพเพื่อจัดการการโอนย้ายรายละเอียดของโฟลเดอร์และข้อความ.
การโอนย้ายโฟลเดอร์และข้อความแบบเรียกซ้ำ
วิธีการนี้ให้การควบคุมที่ลึกซึ้งยิ่งขึ้นต่อกระบวนการจัดการโฟลเดอร์และข้อความขณะย้ายข้อมูลอีเมลจากไฟล์ OLM ไปยังไฟล์ PST ตัวอย่างโค้ดต่อไปนี้ใช้ฟังก์ชัน add_to_pst ซึ่งกำหนดตรรกะการโอนย้าย บทบาทหลักของมันคือการเดินทางแบบเรียกซ้ำผ่านโฟลเดอร์และข้อความ เพื่อให้มั่นใจว่าถูกโอนย้ายและทำซ้ำอย่างถูกต้องในรูปแบบ PST ฟังก์ชันนี้ใช้งานซ้ำได้สูงและคาดว่าจะถูกใช้เป็นส่วนหนึ่งของแอปพลิเคชันหรือสคริปต์ขนาดใหญ่ที่จัดการการเปิดและสร้างไฟล์เหล่านี้.
def add_to_pst(pst_folder, olm_folder):
pst_sub_folder = pst_folder.get_sub_folder(olm_folder.name)
for msg in olm_folder.enumerate_mapi_messages():
if pst_sub_folder is None:
pst_sub_folder = pst_folder.add_sub_folder(olm_folder.name, get_container_class(msg.message_class))
pst_sub_folder.add_message(msg)
if pst_sub_folder is None:
pst_sub_folder = pst_folder.add_sub_folder(olm_folder.name)
for olm_sub_folder in olm_folder.sub_folders:
add_to_pst(pst_sub_folder, olm_sub_folder)
กำหนดประเภทโฟลเดอร์ใน PST
เมื่อแปลงไฟล์ OLM เป็น PST เราต้องแน่ใจว่ารูปแบบโฟลเดอร์ถูกคงไว้และว่าแต่ละโฟลเดอร์ในไฟล์ PST มีประเภทที่ถูกต้อง แตกต่างจาก PST โฟลเดอร์ใน OLM ไม่มีประเภทที่กำหนดไว้ล่วงหน้า เพื่อจัดประเภทและโอนย้ายข้อมูลได้อย่างถูกต้อง ให้ทำตามขั้นตอนด้านล่าง:
- อ่านข้อความแรกจากโฟลเดอร์ OLM และกำหนดประเภทของมัน.
- ใช้ประเภทข้อความนี้เพื่อคำนวณประเภทโฟลเดอร์ที่เหมาะสมใน PST โดยใช้วิธีการจำแนกประเภท.
- สร้างโฟลเดอร์ประเภทที่กำหนดไว้ในไฟล์ PST.
- เพิ่มข้อความเข้าสู่โฟลเดอร์ PST ที่สร้างใหม่.
สำหรับข้อความที่เหลือในโฟลเดอร์ OLM เราจะถือว่ามันอยู่ในหมวดเดียวกัน เนื่องจากประเภทโฟลเดอร์ได้ถูกกำหนดไว้แล้ว.
ฟังก์ชัน get_container_class ช่วยจัดประเภทรายการ Outlook โดยแมปคลาสข้อความต่าง ๆ ไปยังประเภทโฟลเดอร์ PST ที่ถูกต้อง:
def get_container_class(message_class):
if message_class.startswith("IPM.Contact") or message_class.startswith("IPM.DistList"):
return "IPF.Contact"
if message_class.startswith("IPM.StickyNote"):
return "IPF.StickyNote"
if message_class.startswith("IPM.Activity"):
return "IPF.Journal"
if message_class.startswith("IPM.Task"):
return "IPF.Task"
if message_class.startswith("IPM.Appointment") or message_class.startswith("IPM.Schedule.meeting"):
return "IPF.Appointment"
return "IPF.Note"