Outlook for Mac OLM dosyalarını yönetme

OLM (Outlook for Mac Archive), Microsoft Outlook for Mac ile ilişkili bir dosya formatıdır. E-posta mesajlarını, kişileri, takvim öğelerini, görevleri ve diğer Outlook verilerini Mac bilgisayarlarda arşivlemek ve depolamak için kullanılır. OLM dosyaları bir yedekleme veya arşiv formatı olarak hizmet eder, kullanıcıların Outlook for Mac verilerini gelecekte referans veya taşıma amacıyla kaydetmelerine olanak tanır. OLM dosyalarının yalnızca Outlook for Mac için özel olduğunu ve Windows’taki Outlook tarafından kullanılan PST (Personal Storage Table) dosya formatı ile uyumlu olmadığını belirtmek önemlidir. Farklı platformlar arasında Outlook verilerini aktarmanız gerekiyorsa, dönüşüm araçları faydalı olacaktır. Aspose.Email, OLM dosyalarını açma, okuma ve diğer işlevsellikleri içeren bu tür araçları sunar.

Outlook OLM Dosyalarını Açma

OLM formatındaki dosyalar iki şekilde açılabilir:

  • yapıcıyı kullanarak
  • statik ‘from_file’ metodunu kullanarak

Python Yapıcıları Kullanarak Outlook OLM Dosyalarını Aç

Bir dosya açmak için, şu sınıfın yapıcı metodunu çağırın: OlmStorage sınıfına tam dosya adını ya da akışı argüman olarak geçirin:

import aspose.email as ae

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

Python’un Statik Yöntemi FromFile Kullanarak OLM Dosyalarını Aç

Bir dosyayı açmak için, … sınıfının statik ‘from_file’ metodunu kullanın. OlmStorage sınıfına tam dosya adını ya da akışı argüman olarak geçirin:

import aspose.email as ae

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

OLM dosyalarındaki klasör ve e-posta yönetimi

Klasör Yapısına Özyinelemeli Erişim

Aspose.Email API, print_all_folders fonksiyonunu kullanarak OLM dosyasından alınan klasör hiyerarşisini görselleştirmenize ve görüntülemenize olanak tanır. Bu fonksiyon, … sınıfının folder_hierarchy özelliğini alır. OlmStorage sınıf, bir girinti seviyesi girdisiyle birlikte, hiyerarşiyi özyinelemeli olarak geçerek her klasör adını uygun girintiyle yazdırır.

print_all_folders fonksiyonunun OLM dosyasının klasör hiyerarşisini nasıl göstereceğini gösteren kod örneği aşağıdadır:

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, "")

Yukarıdaki kod örneği, OLM dosyasının klasör hiyerarşisini daha yapılandırılmış ve okunabilir bir şekilde özyinelemeli bir fonksiyonla göstermeyi amaçlar.

Klasör Yapısına Doğrudan Eriş

Aspose.Email, get_folders() metodunu kullanarak OLM dosyasından klasör yapısına doğrudan erişmeyi de mümkün kılar. OlmStorage sınıf.

Klasör yapısına doğrudan erişmek için aşağıdaki kod örneği:

import aspose.email as ae

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

Adına göre klasörleri al

get_folder(name, ignore_case) metodunu kullanarak herhangi bir klasörü adıyla alabilirsiniz: OlmStorage sınıf. Bu metod, klasör adı ve büyük/küçük harf duyarlılığı parametrelerini ister.

Bir klasörü adıyla almayı gösteren örnek bir kod:

import aspose.email as ae

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

Outlook OLM dosyalarından e-postaları listele

Aspose.Email kütüphanesi, Outlook for Mac (OLM) dosyalarından e-posta mesajlarını okuma ve çıkarma için kullanılabilir. Aşağıdaki yöntemlerle e-posta listesini alabilirsiniz: OlmFolder klasörü temsil eden sınıf:

  • enumerate_messages() - Klasördeki her e-posta mesajını yineleyerek. Bu yöntem mesajları şu sınıfın örnekleri olarak döndürür: OlmMessageInfo sınıf, her e-posta mesajı hakkında temel bilgileri (konu, gönderici, tarih vb.) sağlar.
  • enumerate_mapi_messages() - Bir klasördeki her e-posta mesajını da yineleyerek, ancak bu sefer mesajları şu sınıfın örnekleri olarak döndürür: MapiMessage sınıf, bir e-posta mesajını daha detaylı ve MAPI-özel bir şekilde temsil eder. E-posta mesajının geniş bir özellik ve detay yelpazesine erişim sağlar, daha gelişmiş ve özelleşmiş işlem yapmaya olanak tanır.

Aşağıdaki kod örnekleri, enumerate_messages() kullanarak temel e-posta konularını çıkarmayı ve enumerate_mapi_messages() ile mesajları .msg dosyaları olarak kaydetmeyi gösterir; böylece bir Outlook OLM dosyasından hem temel konuları çıkarabilir hem de ayrıntılı e-posta mesajlarını kaydedebilirsiniz.

’enumerate_messages()’ yöntemiyle temel e-posta bilgilerini çıkar

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()’ yöntemiyle ayrıntılı e-posta mesajlarını kaydet

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 klasöründeki toplam mesaj sayısını al

Bu OlmFolder sınıf, aşağıdaki metodlarla size daha fazla seçenek sunar:

  • has_messages - Mevcut klasörün mesaj içerip içermediğini belirten bir değer alır.
  • message_count - Mesaj sayısını alır.

Aşağıdaki kod örneği, bu yöntemlerin nasıl kullanılacağını gösterir:

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 mesajları için değiştirilme tarihlerini al veya ayarla

Aspose.Email, bir e-posta mesajının son değiştirilme zamanına ait bilgiyi almayı mümkün kılar. modified_date özelliği, OlmMessageInfo sınıf, mesajın en son ne zaman değiştirildiğini gösteren tarih ve saat bilgisini temsil eder.

Özelliğin kullanımını gösteren bir örnek:

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 içeriğini çıkarma

Outlook OLM dosyalarından e-postaları çıkar

Bir e-posta depolamasından gerçek MAPI mesaj verisini, … sınıfının extract_mapi_message(message_info) metodunu kullanarak alabilirsiniz. OlmStorage sınıf. Bu yöntem, sağlanan message_info temelinde depolamadan MAPI mesajını çıkarır.

Aşağıdaki kod örneği, bu yöntemin nasıl kullanılacağını gösterir:

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)

OLM dosyalarından tanımlayıcıyla Outlook mesajlarını çıkar

MAPI mesaj verisine erişmek için, … sınıfının entry_id özelliğini kullanarak bir mesajın benzersiz tanımlayıcısını (Entry ID) alabilirsiniz. OlmMessageInfo sınıf. Ardından, … sınıfının extract_mapi_message(id) metodunu kullanabilirsiniz. OlmStorage sınıf, belirli bir entry ID ile ilişkili MAPI mesajını almak için entry ID’yi parametre olarak geçer. Aşağıdaki kod parçacığı bu özelliklerin kullanımını gösterir:


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 Klasör Yapısı Yönetimi

Outlook OLM dosyalarındaki klasör yollarını al

Aspose.Email, Outlook OLM dosyası içindeki klasörün hiyerarşik yolunu veya konumunu almanıza izin verir. API, … sınıfının path özelliğini sağlar. OlmFolder sınıf, klasör yolunu döndürür. Aşağıdaki kod parçacığı bu özelliğin kullanımını gösterir:

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 klasörlerindeki öğeleri sayma

Aspose.Email, bir Outlook OLM dosyasının belirli klasöründe bulunan toplam e-posta mesaj sayısını sayma yeteneği sağlar. message_count özelliği, OlmFolder sınıf, OLM dosyasındaki belirli bir klasörde saklanan toplam öğe (e-posta mesajları) sayısını döndürür. Aşağıdaki kod parçacığı bu özelliğin kullanımını gösterir:

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 dosyalarında Toplam Öğe Sayısını Al

… sınıfının get_total_items_count() metodu OlmStorage sınıf, aşağıdaki kod örneğinde gösterildiği gibi OLM depolamasında bulunan toplam mesaj öğesi sayısını döndürür:

import aspose.email as ae

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

Outlook Kategori Yönetimi

Outlook Kategori Renklerini Al

Aspose.Email ile, OLM dosyalarında saklanan Outlook öğe kategorilerine bağlı kategori renklerini kolayca alabilir ve kullanabilirsiniz. OlmItemCategory sınıf, kategori adlarına ve onlara ait hex formatındaki renklere erişmenizi sağlar. OlmStorage sınıf, OLM depolamasından kategori listesi almak için GetCategories() metodunu içerir. Aşağıdaki kod örneğini uygulayarak, OML depolama dosyasından kullanılan tüm kategorileri kolayca alabilir ve kategori adını rengiyle birlikte erişebilirsiniz.

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}")

Ayrıca, bir klasördeki mesajları döngüyle gezerek ve kategori adına göre ilgili kategori rengini alarak, belirli mesajlarla ilişkili kategori rengini de elde edebilirsiniz.

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}")