ניהול קבצי Outlook for Mac OLM

OLM (Outlook for Mac Archive) הוא פורמט קובץ המשויך ל‑Microsoft Outlook for Mac. הוא משמש לארכוב ואחסון הודעות אימייל, אנשי קשר, פריטי לוח שנה, משימות ונתוני Outlook אחרים במחשבי Mac. קבצי OLM משמשים כגיבוי או פורמט ארכיון, המאפשר למשתמשים לשמור את נתוני Outlook for Mac לשימוש עתידי או למיגרציה. חשוב לציין שקבצי OLM הם ספציפיים ל‑Outlook for Mac, ואינם תואמים לפורמט PST (Personal Storage Table) המשמש ב‑Outlook על Windows. אם יש צורך להעביר נתוני Outlook בין פלטפורמות שונות, כלי המרה יהיו שימושיים. Aspose.Email מספקת כלים כאלה כולל פתיחה, קריאה ופונקציות נוספות לעבודה עם קבצי OLM.

פתיחת קבצי Outlook OLM

קבצי פורמט OLM ניתן לפתוח בשתי דרכים:

  • בהשתמש בבונה
  • באמצעות השיטה הסטטית ‘from_file’

פתיחת קבצי Outlook OLM באמצעות בנאים של Python

כדי לפתוח קובץ, קרא לבוני של ה‑ OlmStorage מחלקה והעבר את שם הקובץ המלא או הזרם כארגומנט אליה:

import aspose.email as ae

fileName = "my.olm"
olm = ae.storage.olm.OlmStorage(fileName)

פתיחת קבצי OLM באמצעות השיטה הסטטית FromFile של Python

כדי לפתוח קובץ, השתמש בשיטה סטטית ‘from_file’ של ה- OlmStorage מחלקה והעבר את שם הקובץ המלא או הזרם כארגומנט אליה:

import aspose.email as ae

fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)

ניהול תיקיות ואימיילים בקבצי OLM

גישה רקורסיבית למבנה התיקיות

API של Aspose.Email מאפשרת להמחיש ולהציג את היררכיית התיקיות שהתקבלה מקובץ OLM באמצעות הפונקציה print_all_folders. הפונקציה הזו מקבלת את תכונת folder_hierarchy של ה- OlmStorage מחלקה, יחד עם רמת הזחה כקלט, ועוברת רקורסיבית על ההיררכיה כדי להדפיס את שם כל תיקייה עם ההזחה המתאימה.

להלן קוד הדוגמה המראה כיצד להשתמש בפונקציה print_all_folders להצגת היררכיית התיקיות מקובץ OLM:

import aspose.email as ae


def print_all_folders(folder_hierarchy, indent):
    for folder in folder_hierarchy:
        print(f"{indent}{folder.name}")
        print_all_folders(folder.sub_folders, indent + "-")

fileName = "my.olm"
olm = ae.storage.olm.OlmStorage(fileName)
print_all_folders(olm.folder_hierarchy, "")

קוד הדוגמה שלעיל נועד להציג את היררכיית התיקיות של קובץ OLM דרך פונקציה רקורסיבית בתצורה מובנית וקריאה יותר.

גישה ישירה למבנה התיקיות

Aspose.Email גם מאפשרת גישה ישירה למבנה התיקיות מקובץ OLM בעזרת השיטה get_folders() של ה- OlmStorage מחלקה.

להלן קוד דוגמה לגישה ישירה למבנה התיקיות:

import aspose.email as ae

fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folders = olm.get_folders()

קבלת תיקיות לפי שם

אפשר לקבל כל תיקייה לפי שמה באמצעות השיטה get_folder(name, ignore_case) של ה- OlmStorage מחלקה. שיטה זו דורשת את שם התיקייה ופרמטרי הרגישות לאותיות.

להלן קוד דוגמה הממחיש כיצד לקבל תיקייה לפי שמה:

import aspose.email as ae

fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)

רשימת אימיילים מקבצי Outlook OLM

ניתן להשתמש בספריית Aspose.Email כדי לקרוא ולחלץ הודעות אימייל מקבצי Outlook for Mac (OLM). אתה יכול לקבל את רשימת האימיילים באמצעות השיטות הבאות של ה- OlmFolder מחלקה המייצגת תיקייה:

  • enumerate_messages() - עוברת על כל הודעת אימייל בתיקייה. שיטה זו מחזירה הודעות כמופעים של ה- OlmMessageInfo מחלקה המספקת מידע בסיסי על כל הודעת אימייל, כגון נושא, שולח, תאריך וכו’.
  • enumerate_mapi_messages() - גם עוברת על כל הודעת אימייל בתיקייה, אך במצב זה מחזירה הודעות כמופעים של ה- MapiMessage מחלקה שמייצגת הודעת אימייל בצורה מפורטת יותר ובסגנון MAPI. היא מספקת גישה למגוון רחב של תכונות ופרטים של הודעת האימייל, מה שמאפשר עיבוד מתקדם ומתמחה יותר.

קוד הדוגמאות למטה מדגים כיצד לחלץ נושאי אימייל בסיסיים ולשמור הודעות אימייל מפורטות מקובץ Outlook OLM על ידי שימוש ב‑enumerate_messages() לחילוץ נושא וב‑enumerate_mapi_messages() לשמירת הודעות כקבצי .msg.

חילוץ מידע בסיסי על אימייל באמצעות השיטה ’enumerate_messages()’

import aspose.email as ae

fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)

for message_info in folder.enumerate_messages():
    print(message_info.subject)

שמירת הודעות אימייל מפורטות באמצעות השיטה ’enumerate_mapi_messages()’

import aspose.email as ae

fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)

for msg in folder.enumerate_mapi_messages():
    msg.save(f"{msg.subject}.msg")

קבלת מספר ההודעות הכולל בתיקיית OLM

ה OlmFolder המחלקה נותנת לך אפשרויות נוספות עם השיטות הבאות:

  • has_messages - מחזירה ערך שמציין אם לתיקייה הנוכחית יש הודעות.
  • message_count - מחזירה את מספר ההודעות.

קוד הדוגמה למטה מציג כיצד להשתמש בשיטות אלה:

import aspose.email as ae

fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)

if folder.has_messages:
   print(f"Message count: {folder.message_count}")

קבלה או קביעת תאריכי שינוי עבור הודעות Outlook OLM

Aspose.Email מאפשרת לקבל מידע על זמן השינוי האחרון של הודעת אימייל. תכונת modified_date של ה- OlmMessageInfo מחלקה מייצגת את התאריך והשעה שבהם הודעה שונתה לאחרונה.

הנה דוגמה שממחישה את השימוש בתכונה:

import aspose.email as ae

fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)

for message_info in folder.enumerate_messages():
    modifiedDate = message_info.modified_date

חילוץ תוכן OLM

חילוץ אימיילים מקבצי Outlook OLM

אתה יכול לקבל את נתוני הודעת MAPI האמיתיים מאחסון אימייל באמצעות השיטה extract_mapi_message(message_info) של ה- OlmStorage מחלקה. שיטה זו מחלץ את הודעת MAPI מהאחסון בהתבסס על message_info המסופק.

דוגמת הקוד למטה מציגה כיצד להשתמש בשיטה זו:

import aspose.email as ae

fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)

for message_info in folder.enumerate_messages():
    msg = olm.extract_mapi_message(message_info)

חילוץ הודעות Outlook מקבצי OLM לפי מזהה

כדי לגשת לנתוני הודעת MAPI, ניתן להשתמש בתכונת entry_id כדי לקבל את המזהה הייחודי (Entry ID) של הודעה באמצעות ה- OlmMessageInfo מחלקה. לאחר מכן, ניתן להשתמש בשיטת extract_mapi_message(id) של ה- OlmStorage המחלקה, המקבלת את ה‑Entry ID כפרמטר כדי לאחזר את הודעת MAPI המשויכת ל‑Entry ID המסוים הזה. קטע הקוד הבא מדגים את השימוש בתכונות אלה:


import aspose.email as ae

fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)

for message_info in folder.enumerate_messages():
    msg = olm.extract_mapi_message(message_info.entry_id)

ניהול מבנה תיקיות OLM

קבלת נתיבי תיקיות בקבצי Outlook OLM

Aspose.Email מאפשרת לקבל את הנתיב ההיררכי או המיקום של התיקייה בתוך קובץ Outlook OLM. ה‑API מספקת את תכונת path של ה- OlmFolder המחלקה המחזירה את נתיב התיקייה. קטע הקוד הבא מדגים את השימוש במאפיין זה:

import aspose.email as ae


def print_path(storage, folders):
    for folder in folders:
        # print the current folder path
        print(folder.path)

        if folder.sub_folders:
            print_path(storage, folder.sub_folders)


fileName = "my.olm"
olm = ae.storage.olm.OlmStorage(fileName)
print_path(olm, olm.folder_hierarchy)

ספירת פריטים בתיקיות Outlook OLM

Aspose.Email מאפשרת לספור את מספר הודעות האימייל הכולל המוחזק בתיקייה ספציפית של קובץ Outlook OLM. תכונת message_count של ה- OlmFolder המחלקה מחזירה את מספר הפריטים (הודעות אימייל) הכולל השמור בתיקייה ספציפית בקובץ OLM. קטע הקוד הבא מדגים את השימוש במאפיין זה:

import aspose.email as ae


def print_message_count(folders):
    for folder in folders:
        print(f"Message Count [{folder.name}]: {folder.message_count}")


fileName = "my.olm"
olm = ae.storage.olm.OlmStorage(fileName)
print_message_count(olm.folder_hierarchy)

קבלת ספירת הפריטים הכוללת בקבצי Outlook OLM

השיטה get_total_items_count() של ה- OlmStorage המחלקה מחזירה את מספר פריטי ההודעות הכולל הקיימים באחסון OLM כפי שמוצג בקוד הדוגמה למטה:

import aspose.email as ae

fileName = "my.olm"
olm = ae.storage.olm.OlmStorage(fileName)
count = olm.get_total_items_count()

ניהול קטגוריות ב‑Outlook

קבלת צבעי קטגוריות של Outlook

עם Aspose.Email, ניתן בקלות לאחזר ולהשתמש בצבעי הקטגוריות המשוייכים לקטגוריות פריטי Outlook המאוחסנות בקבצי OLM. ה‑ OlmItemCategory המחלקה מאפשרת לגשת לשמות הקטגוריות ולצבעים המתאימים המיוצגים בפורמט הקסדצימלי. ה‑ OlmStorage המחלקה כוללת את השיטה GetCategories() לקבלת רשימת קטגוריות מאחסון OLM. על ידי יישום קוד הדוגמה למטה, ניתן בקלות לקבל את כל הקטגוריות בשימוש מקובץ אחסון OML ולהגיש את שם הקטגוריה יחד עם הצבע שלה.

with OlmStorage.FromFile("storage.olm") as olm:
    categories = olm.GetCategories()
    
    for category in categories:
        print(f"Category name: {category.Name}")
        
        # Color is represented as a hexadecimal value: #rrggbb
        print(f"Category color: {category.Color}")

בנוסף, ניתן להשיג את צבע הקטגוריה המשויך להודעות ספציפיות על ידי מעבר על ההודעות בתיקייה וגישה לצבע הקטגוריה המתאים על פי שם הקטגוריה.

for msg in olm.EnumerateMessages(folder):
    if msg.Categories is not None:
        for msgCategory in msg.Categories:
            print(f"Category name: {msgCategory}")
            categoryColor = next((c.Color for c in categories if c.Name.lower() == msgCategory.lower()), None)
            if categoryColor is not None:
                print(f"Category color: {categoryColor}")