مدیریت فایل‌های OLM Outlook برای مک

Contents
[ ]

OLM (Outlook for Mac Archive) یک فرمت فایل است که با Microsoft Outlook برای مک مرتبط است. از آن برای بایگانی و ذخیره‌سازی پیام‌های ایمیل، مخاطبین، موارد تقویم، وظایف و سایر داده‌های Outlook بر روی کامپیوترهای مک استفاده می‌شود. فایل‌های OLM به‌عنوان فرمت پشتیبان یا بایگانی عمل می‌کنند و به کاربران اجازه می‌دهند داده‌های Outlook برای مک خود را برای مراجعهٔ آینده یا مهاجرت ذخیره کنند. لازم به ذکر است که فایل‌های OLM مختص Outlook برای مک هستند و با فرمت PST (Personal Storage Table) که در Outlook ویندوز استفاده می‌شود، سازگار نیستند. اگر نیاز به انتقال داده‌های Outlook بین پلتفرم‌های مختلف دارید، ابزارهای تبدیل مفید خواهند بود. Aspose.Email چنین ابزارهایی را شامل باز کردن، خواندن و سایر قابلیت‌ها برای کار با فایل‌های OLM ارائه می‌دهد.

باز کردن فایل‌های OLM Outlook

فایل‌های فرمت OLM می‌توانند به دو روش باز شوند:

  • استفاده از سازنده
  • با استفاده از متد استاتیک ‘from_file’

باز کردن فایل‌های OLM Outlook با استفاده از سازنده‌های پایتون

برای باز کردن یک فایل، سازندهٔ OlmStorage کلاس و نام کامل فایل یا جریان را به عنوان آرگومان به آن پاس دهید:

import aspose.email as ae

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

باز کردن فایل‌های OLM با استفاده از متد ثابت FromFile پایتون

برای باز کردن یک فایل، از متد استاتیک ‘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)

فهرست ایمیل‌ها از فایل‌های OLM Outlook

کتابخانه Aspose.Email می‌تواند برای خواندن و استخراج پیام‌های ایمیل از فایل‌های Outlook for Mac (OLM) استفاده شود. می‌توانید لیست ایمیل‌ها را با استفاده از متدهای زیر در OlmFolder کلاسی که یک پوشه را نمایان می‌کند:

  • enumerate_messages() - بر هر پیام ایمیل در پوشه پیمایش می‌کند. این متد پیام‌ها را به‌صورت نمونه‌هایی از OlmMessageInfo کلاس که اطلاعات پایه‌ای درباره هر پیام ایمیل مانند موضوع، فرستنده، تاریخ و غیره را فراهم می‌کند.
  • enumerate_mapi_messages() - همچنین بر هر پیام ایمیل در یک پوشه پیمایش می‌کند، اما در این حالت پیام‌ها را به‌صورت نمونه‌هایی از MapiMessage کلاسی که پیام ایمیل را به‌صورت جزئی‌تر و خاص MAPI نشان می‌دهد. دسترسی به مجموعه گسترده‌ای از ویژگی‌ها و جزئیات پیام ایمیل را فراهم می‌کند و امکان پردازش پیشرفته‌تر و تخصصی را می‌دهد.

کدهای نمونه زیر نشان می‌دهند چگونه موضوعات پایه ایمیل‌ها را استخراج کرده و پیام‌های ایمیل جزئی را از یک فایل OLM Outlook ذخیره کنید، با استفاده از 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}")

دریافت یا تنظیم تاریخ‌های تغییر برای پیام‌های OLM Outlook

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

استخراج ایمیل‌ها از فایل‌های OLM Outlook

می‌توانید داده‌های واقعی پیام 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

دریافت مسیرهای پوشه در فایل‌های OLM Outlook

Aspose.Email به شما اجازه می‌دهد مسیر یا مکان سلسله‌مراتبی پوشه داخل فایل OLM Outlook را بدست آورید. 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)

شمارش آیتم‌ها در پوشه‌های OLM Outlook

Aspose.Email امکان شمارش کل پیام‌های ایمیل موجود در پوشه خاصی از یک فایل OLM Outlook را فراهم می‌کند. ویژگی 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)

دریافت تعداد کل آیتم‌ها در فایل‌های OLM Outlook

متد 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، می‌توانید به‌راحتی رنگ‌های دسته‌بندی مرتبط با دسته‌های آیتم اوتلوک که در فایل‌های 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}")