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