המרת OLM ל-PST
המרת OLM ל-PST
OLM (Outlook for Mac) הוא פורמט קובץ בו משתמש Microsoft 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 או לכל לקוח דוא"ל תואם אחר.
גישת ראשית
דוגמת הקוד הבאה מציגה כיצד להמיר קובץ Outlook OLM לקובץ 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"