Outlook voor Mac OLM‑bestanden beheren

OLM (Outlook for Mac Archive) is een bestandsformaat dat gekoppeld is aan Microsoft Outlook voor Mac. Het wordt gebruikt om e‑mailberichten, contactpersonen, agenda‑items, taken en andere Outlook‑gegevens op Mac‑computers te archiveren en op te slaan. OLM‑bestanden fungeren als een back‑up‑ of archiefformaat, waardoor gebruikers hun Outlook voor Mac‑gegevens kunnen bewaren voor later gebruik of migratie. Het is belangrijk op te merken dat OLM‑bestanden specifiek zijn voor Outlook voor Mac en niet compatibel zijn met het PST‑formaat (Personal Storage Table) dat door Outlook op Windows wordt gebruikt. Als u Outlook‑gegevens tussen verschillende platforms moet overzetten, zijn conversietools handig. Aspose.Email biedt dergelijke tools, waaronder openen, lezen en andere functionaliteiten om met OLM‑bestanden te werken.

Outlook OLM-bestanden openen

OLM‑formaatbestanden kunnen op twee manieren worden geopend:

  • met constructor
  • met behulp van de statische ‘from_file’-methode

Open Outlook OLM-bestanden met Python-constructors

Om een bestand te openen, roep de constructor van de OlmStorage klasse en geef de volledige bestandsnaam of stream als argument door:

import aspose.email as ae

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

Open OLM-bestanden met Python’s statische methode FromFile

Om een bestand te openen, gebruik de statische methode ‘from_file’ van de OlmStorage klasse en geef de volledige bestandsnaam of stream als argument door:

import aspose.email as ae

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

Beheer van mappen en e‑mails in OLM‑bestanden

Mapstructuur recursief benaderen

De Aspose.Email‑API stelt u in staat om de maphiërarchie die uit een OLM‑bestand is opgehaald te visualiseren en weer te geven met de print_all_folders-functie. Deze functie neemt de folder_hierarchy-eigenschap van de OlmStorage klasse, samen met een insprongniveau als invoer, en doorloopt recursief de hiërarchie om elke mapnaam af te drukken met de juiste insprong.

Hieronder staat het codevoorbeeld dat laat zien hoe de print_all_folders-functie te gebruiken om de maphiërarchie uit een OLM‑bestand weer te geven:

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

Het bovenstaande codevoorbeeld is bedoeld om de maphiërarchie van het OLM‑bestand weer te geven via een recursieve functie in een meer gestructureerd en leesbaar formaat.

Mapstructuur direct benaderen

Aspose.Email maakt het ook mogelijk om direct de mapstructuur uit het OLM‑bestand te benaderen met de get_folders()‑methode van de OlmStorage klasse.

Hieronder staat een codevoorbeeld voor directe toegang tot de mapstructuur:

import aspose.email as ae

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

Mappen ophalen op naam

Het is mogelijk om elke map op naam op te halen met de get_folder(name, ignore_case)‑methode van de OlmStorage klasse. Deze methode vereist de mapnaam en parameters voor hoofdlettergevoeligheid.

Hier is een voorbeeldcode die illustreert hoe een map op naam op te halen:

import aspose.email as ae

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

E‑mails uit Outlook OLM‑bestanden weergeven

De Aspose.Email‑bibliotheek kan worden gebruikt om e‑mailberichten te lezen en te extraheren uit Outlook for Mac (OLM)‑bestanden. U kunt de lijst met e‑mails ophalen met de volgende methoden van de OlmFolder klasse die een map vertegenwoordigt:

  • enumerate_messages() – Itereert door elk e‑mailbericht in de map. Deze methode retourneert berichten als instanties van de OlmMessageInfo klasse die basisinformatie over elk e‑mailbericht biedt, zoals onderwerp, afzender, datum, enz.
  • enumerate_mapi_messages() – Itereert ook door elk e‑mailbericht in een map, maar in dit geval worden berichten geretourneerd als instanties van de MapiMessage klasse die een e‑mailbericht op een meer gedetailleerde en MAPI‑specifieke manier weergeeft. Het biedt toegang tot een breed scala aan eigenschappen en details van het e‑mailbericht, waardoor meer geavanceerde en gespecialiseerde verwerking mogelijk is.

De onderstaande code‑voorbeelden tonen hoe basis‑e‑mailonderwerpen te extraheren en gedetailleerde e‑mailberichten op te slaan uit een Outlook OLM‑bestand door enumerate_messages() te gebruiken voor het extraheren van onderwerpen en enumerate_mapi_messages() voor het opslaan van berichten als .msg‑bestanden.

Basis‑e‑mailinformatie extraheren met de ’enumerate_messages()’-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():
    print(message_info.subject)

Gedetailleerde e‑mailberichten opslaan met de ’enumerate_mapi_messages()’-methode

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

Het totale aantal berichten in de OLM‑map ophalen

De OlmFolder klasse biedt u nog meer opties met de volgende methoden:

  • has_messages – Haalt een waarde op die aangeeft of de huidige map berichten bevat.
  • message_count – Haalt het aantal berichten op.

Het onderstaande code‑voorbeeld toont hoe deze methoden te gebruiken:

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

De wijzigingsdatums van Outlook OLM‑berichten ophalen of instellen

Aspose.Email maakt het mogelijk om informatie over de laatste wijzigingstijd van een e‑mailbericht op te halen. De modified_date-eigenschap van de OlmMessageInfo klasse vertegenwoordigt de datum en tijd waarop het bericht voor het laatst is gewijzigd.

Hier is een voorbeeld dat het gebruik van de eigenschap laat zien:

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‑inhoud extraheren

E‑mails extraheren uit Outlook OLM‑bestanden

U kunt de daadwerkelijke MAPI‑berichtgegevens van een e‑mailopslag ophalen met de extract_mapi_message(message_info)‑methode van de OlmStorage klasse. Deze methode haalt het MAPI‑bericht uit de opslag op basis van de opgegeven message_info.

Het onderstaande code‑voorbeeld toont hoe deze methode te gebruiken:

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‑berichten uit OLM‑bestanden extraheren via identifier

Om toegang te krijgen tot MAPI‑berichtgegevens, kunt u de entry_id-eigenschap gebruiken om de unieke identifier (Entry ID) van een bericht op te halen met de OlmMessageInfo klasse. Vervolgens kunt u de extract_mapi_message(id)‑methode van de OlmStorage class, waarbij de entry ID als parameter wordt meegegeven om het MAPI‑bericht op te halen dat bij die specifieke entry ID hoort. De onderstaande codefragment toont het gebruik van deze functies:


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)

Beheer van OLM‑mapstructuur

Mappaden ophalen in Outlook OLM‑bestanden

Aspose.Email stelt u in staat om het hiërarchische pad of de locatie van de map binnen het Outlook OLM‑bestand op te halen. De API biedt de path-eigenschap van de OlmFolder class die het mappad teruggeeft. De onderstaande codefragment toont het gebruik van deze eigenschap:

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)

Items tellen in Outlook OLM‑mappen

Aspose.Email biedt de mogelijkheid om het totale aantal e‑mailberichten te tellen dat zich in een specifieke map van een Outlook OLM‑bestand bevindt. De message_count-eigenschap van de OlmFolder class geeft het totale aantal items (e‑mailberichten) terug dat is opgeslagen in een specifieke map in het OLM‑bestand. De onderstaande codefragment toont het gebruik van deze eigenschap:

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)

Het totale aantal items in Outlook OLM‑bestanden ophalen

De get_total_items_count()‑methode van de OlmStorage klasse retourneert het totale aantal berichtitems dat in de OLM‑opslag aanwezig is, zoals getoond in het onderstaande code‑voorbeeld:

import aspose.email as ae

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

Beheer van Outlook‑categorieën

Outlook‑categori kleuren ophalen

Met Aspose.Email kunt u eenvoudig categoriekleuren ophalen en gebruiken die gekoppeld zijn aan Outlook‑itemcategorieën opgeslagen in OLM‑bestanden. De OlmItemCategory class stelt u in staat categorie‑namen en hun respectieve kleuren in hexadecimale notatie te benaderen. De OlmStorage klasse bevat de GetCategories()‑methode voor het ophalen van een lijst met categorieën uit OLM‑opslag. Door de onderstaande code toe te passen, kunt u moeiteloos alle gebruikte categorieën uit een OML‑opslagbestand ophalen en de categorienaam together met de kleur benaderen.

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

Daarnaast kunt u de categoriekleur ophalen die aan specifieke berichten is gekoppeld door door de berichten in een map te itereren en de overeenkomstige categoriekleur op te vragen op basis van de categorienaam.

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