Verwalten von Outlook‑für‑Mac‑OLM‑Dateien

OLM (Outlook for Mac Archive) ist ein Dateiformat, das mit Microsoft Outlook für Mac verbunden ist. Es wird verwendet, um E‑Mail‑Nachrichten, Kontakte, Kalender­einträge, Aufgaben und andere Outlook‑Daten auf Mac‑Computern zu archivieren und zu speichern. OLM‑Dateien dienen als Backup‑ oder Archivformat, das es Benutzern ermöglicht, ihre Outlook‑für‑Mac‑Daten für zukünftige Referenz oder Migration zu sichern. Es ist wichtig zu beachten, dass OLM‑Dateien spezifisch für Outlook für Mac sind und nicht mit dem PST‑Dateiformat (Personal Storage Table) kompatibel sind, das von Outlook unter Windows verwendet wird. Wenn Sie Outlook‑Daten zwischen verschiedenen Plattformen übertragen müssen, sind Konvertierungstools hilfreich. Aspose.Email bietet solche Tools, einschließlich Öffnen, Lesen und weiterer Funktionalitäten zum Arbeiten mit OLM‑Dateien.

Öffnen von Outlook OLM-Dateien

OLM‑Formatdateien können auf zwei Arten geöffnet werden:

  • unter Verwendung des Konstruktors
  • unter Verwendung der statischen ‘from_file’-Methode

Öffnen von Outlook OLM-Dateien mit Python-Konstruktoren

Um eine Datei zu öffnen, rufen Sie den Konstruktor der OlmStorage Klasse und übergeben Sie den vollständigen Dateinamen oder Stream als Argument:

import aspose.email as ae

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

Öffnen von OLM-Dateien mit Pythons statischer Methode FromFile

Um eine Datei zu öffnen, verwenden Sie die statische Methode ‘from_file’ der OlmStorage Klasse und übergeben Sie den vollständigen Dateinamen oder Stream als Argument:

import aspose.email as ae

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

Ordner- und E‑Mail‑Verwaltung in OLM‑Dateien

Ordnerstruktur rekursiv zugreifen

Die Aspose.Email‑API ermöglicht das Visualisieren und Anzeigen der aus einer OLM‑Datei abgerufenen Ordnerhierarchie mittels der Funktion print_all_folders. Diese Funktion nimmt die Eigenschaft folder_hierarchy der OlmStorage Klasse, zusammen mit einer Einrückungsebene als Eingabe, durchläuft rekursiv die Hierarchie, um jeden Ordnernamen mit entsprechender Einrückung auszugeben.

Nachfolgend das Code‑Beispiel, das die Verwendung der Funktion print_all_folders zur Anzeige der Ordnerhierarchie aus einer OLM‑Datei demonstriert:

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

Das obige Code‑Beispiel soll die Ordnerhierarchie der OLM‑Datei mittels einer rekursiven Funktion übersichtlicher und lesbarer darstellen.

Ordnerstruktur direkt zugreifen

Aspose.Email ermöglicht außerdem den direkten Zugriff auf die Ordnerstruktur der OLM‑Datei über die Methode get_folders() der OlmStorage Klasse.

Nachfolgend ein Code‑Beispiel zum direkten Zugriff auf die Ordnerstruktur:

import aspose.email as ae

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

Ordner nach Namen abrufen

Es ist möglich, jeden Ordner anhand seines Namens mit der Methode get_folder(name, ignore_case) der OlmStorage Klasse. Diese Methode erfordert den Ordnernamen und die Parameter für die Groß-/Kleinschreibung.

Hier ein Beispielcode, der zeigt, wie ein Ordner anhand seines Namens abgerufen wird:

import aspose.email as ae

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

E‑Mails aus Outlook‑OLM‑Dateien auflisten

Die Aspose.Email‑Bibliothek kann verwendet werden, um E‑Mail‑Nachrichten aus Outlook‑für‑Mac‑(OLM‑)Dateien zu lesen und zu extrahieren. Sie können die E‑Mail‑Liste mit den folgenden Methoden der OlmFolder Klasse, die einen Ordner darstellt:

  • enumerate_messages() – Durchläuft jede E‑Mail‑Nachricht im Ordner. Diese Methode gibt Nachrichten als Instanzen der OlmMessageInfo Klasse, die grundlegende Informationen zu jeder E‑Mail‑Nachricht bereitstellt, wie Betreff, Absender, Datum usw.
  • enumerate_mapi_messages() – Durchläuft ebenfalls jede E‑Mail‑Nachricht in einem Ordner, gibt jedoch in diesem Fall Nachrichten als Instanzen der MapiMessage Klasse, die eine E‑Mail‑Nachricht detaillierter und MAPI‑spezifisch darstellt. Sie bietet Zugriff auf eine Vielzahl von Eigenschaften und Details der Nachricht, was eine fortgeschrittenere und spezialisierte Verarbeitung ermöglicht.

Die nachstehenden Code‑Beispiele zeigen, wie Sie grundlegende E‑Mail‑Betreffzeilen extrahieren und detaillierte E‑Mail‑Nachrichten aus einer Outlook‑OLM‑Datei speichern, indem Sie enumerate_messages() für die Betreffextraktion und enumerate_mapi_messages() zum Speichern der Nachrichten als .msg‑Dateien verwenden.

Grundlegende E‑Mail‑Informationen mit der Methode ’enumerate_messages()’ extrahieren

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)

Detaillierte E‑Mail‑Nachrichten mit der Methode ’enumerate_mapi_messages()’ speichern

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

Gesamtzahl der Nachrichten im OLM‑Ordner abrufen

Die OlmFolder Klasse bietet Ihnen noch mehr Optionen mit den folgenden Methoden:

  • has_messages – Gibt einen Wert zurück, der angibt, ob der aktuelle Ordner Nachrichten enthält.
  • message_count – Gibt die Anzahl der Nachrichten zurück.

Das untenstehende Code‑Beispiel zeigt, wie diese Methoden verwendet werden:

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

Modifizierungsdaten für Outlook‑OLM‑Nachrichten erhalten oder setzen

Aspose.Email ermöglicht das Abrufen von Informationen über den letzten Änderungszeitpunkt einer E‑Mail‑Nachricht. Die modified_date-Eigenschaft der OlmMessageInfo Klasse stellt das Datum und die Uhrzeit dar, zu der die Nachricht zuletzt geändert wurde.

Hier ist ein Beispiel, das die Verwendung der Eigenschaft demonstriert:

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‑Inhalt extrahieren

E‑Mails aus Outlook‑OLM‑Dateien extrahieren

Sie können die tatsächlichen MAPI‑Nachrichtendaten aus einem E‑Mail‑Speicher mithilfe der Methode extract_mapi_message(message_info) der OlmStorage Klasse. Diese Methode extrahiert die MAPI‑Nachricht aus dem Speicher basierend auf den bereitgestellten message_info.

Das untenstehende Code‑Beispiel demonstriert die Verwendung dieser Methode:

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‑Nachrichten aus OLM‑Dateien per Kennung extrahieren

Um auf MAPI‑Nachrichtendaten zuzugreifen, können Sie die entry_id-Eigenschaft verwenden, um die eindeutige Kennung (Entry ID) einer Nachricht zu erhalten, indem Sie die OlmMessageInfo Klasse. Anschließend können Sie die Methode extract_mapi_message(id) der OlmStorage Klasse, wobei die Entry‑ID als Parameter übergeben wird, um die mit dieser Entry‑ID verknüpfte MAPI‑Nachricht abzurufen. Das folgende Codebeispiel demonstriert die Nutzung dieser Funktionen:


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)

Verwaltung der OLM‑Ordnerstruktur

Ordnerpfade in Outlook‑OLM‑Dateien erhalten

Aspose.Email ermöglicht das Abrufen des hierarchischen Pfads oder Standorts eines Ordners innerhalb der Outlook‑OLM‑Datei. Die API stellt die path-Eigenschaft der OlmFolder Klasse, die den Ordnerpfad zurückgibt. Das folgende Codebeispiel demonstriert die Verwendung dieser Eigenschaft:

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)

Elemente in Outlook‑OLM‑Ordnern zählen

Aspose.Email bietet die Möglichkeit, die Gesamtzahl der E‑Mail‑Nachrichten zu zählen, die in einem bestimmten Ordner einer Outlook‑OLM‑Datei enthalten sind. Die message_count-Eigenschaft der OlmFolder Klasse gibt die Gesamtzahl der Elemente (E‑Mail‑Nachrichten) zurück, die in einem bestimmten Ordner der OLM‑Datei gespeichert sind. Das folgende Codebeispiel demonstriert die Verwendung dieser Eigenschaft:

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)

Gesamtanzahl der Elemente in Outlook‑OLM‑Dateien ermitteln

Die Methode get_total_items_count() der OlmStorage Klasse gibt die Gesamtzahl der Nachrichtenelemente zurück, die im OLM‑Speicher enthalten sind, wie im nachstehenden Code‑Beispiel gezeigt:

import aspose.email as ae

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

Verwaltung von Outlook‑Kategorien

Outlook‑Kategorienfarben abrufen

Mit Aspose.Email können Sie Farben von Kategorien, die mit Outlook‑Elementkategorien in OLM‑Dateien gespeichert sind, leicht abrufen und verwenden. Die OlmItemCategory Klasse ermöglicht den Zugriff auf Kategorienamen und deren jeweilige Farben im Hexadezimalformat. Die OlmStorage Klasse verfügt über die Methode GetCategories() zum Abrufen einer Liste von Kategorien aus dem OLM‑Speicher. Durch Implementierung des nachstehenden Code‑Beispiels können Sie mühelos alle verwendeten Kategorien aus einer OML‑Speicherdatei abrufen und den Kategorienamen sowie dessen Farbe erhalten.

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

Zusätzlich können Sie die Farbzuordnung einer Kategorie, die zu bestimmten Nachrichten gehört, ermitteln, indem Sie durch die Nachrichten in einem Ordner iterieren und die entsprechende Farbzuordnung basierend auf dem Kategorienamen abrufen.

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