Gestione dei file Outlook per Mac OLM

OLM (Outlook for Mac Archive) è un formato di file associato a Microsoft Outlook per Mac. Viene utilizzato per archiviare e conservare messaggi email, contatti, elementi del calendario, attività e altri dati di Outlook su computer Mac. I file OLM fungono da formato di backup o archivio, consentendo agli utenti di salvare i dati di Outlook per Mac per riferimento futuro o migrazione. È importante notare che i file OLM sono specifici per Outlook per Mac e non sono compatibili con il formato PST (Personal Storage Table) usato da Outlook su Windows. Se devi trasferire dati Outlook tra piattaforme diverse, gli strumenti di conversione sono utili. Aspose.Email offre tali strumenti, includendo l’apertura, la lettura e altre funzionalità per lavorare con i file OLM.

Apertura di file OLM di Outlook

I file in formato OLM possono essere aperti in due modi:

  • usando il costruttore
  • usando il metodo statico ‘from_file’

Apri file OLM di Outlook usando i costruttori Python

Per aprire un file, chiama il costruttore della OlmStorage classe e passa il nome file completo o lo stream come argomento:

import aspose.email as ae

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

Apri file OLM usando il metodo statico FromFile di Python

Per aprire un file, usa il metodo statico ‘from_file’ della OlmStorage classe e passa il nome file completo o lo stream come argomento:

import aspose.email as ae

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

Gestione di cartelle e email nei file OLM

Accedi alla struttura delle cartelle in modo ricorsivo

L’API Aspose.Email consente di visualizzare e mostrare la gerarchia delle cartelle recuperata da un file OLM usando la funzione print_all_folders. Questa funzione prende la proprietà folder_hierarchy della OlmStorage classe, insieme a un livello di indentazione come input, e attraversa ricorsivamente la gerarchia per stampare ogni nome di cartella con l’indentazione appropriata.

Di seguito è mostrato il campione di codice che dimostra come usare la funzione print_all_folders per visualizzare la gerarchia delle cartelle da un file 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, "")

Il campione di codice sopra è destinato a visualizzare la gerarchia delle cartelle del file OLM tramite una funzione ricorsiva in un formato più strutturato e leggibile.

Accedi direttamente alla struttura delle cartelle

Aspose.Email rende inoltre possibile accedere direttamente alla struttura delle cartelle dal file OLM usando il metodo get_folders() della OlmStorage classe.

Di seguito è riportato un esempio di codice per accedere direttamente alla struttura delle cartelle:

import aspose.email as ae

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

Recupera cartelle per nome

È possibile recuperare qualsiasi cartella per nome usando il metodo get_folder(name, ignore_case) della OlmStorage classe. Questo metodo richiede i parametri nome della cartella e sensibilità al maiuscolo/minuscolo.

Ecco un esempio di codice che illustra come recuperare una cartella per nome:

import aspose.email as ae

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

Elenca le email dai file Outlook OLM

La libreria Aspose.Email può essere usata per leggere ed estrarre messaggi email da file Outlook per Mac (OLM). Puoi ottenere l’elenco delle email usando i seguenti metodi della OlmFolder classe che rappresenta una cartella:

  • enumerate_messages() - Itera attraverso ogni messaggio email nella cartella. Questo metodo restituisce i messaggi come istanze della OlmMessageInfo classe che fornisce informazioni di base su ogni messaggio email, come oggetto, mittente, data, ecc.
  • enumerate_mapi_messages() - Itera anche attraverso ogni messaggio email in una cartella, ma in questo caso restituisce i messaggi come istanze della MapiMessage la classe che rappresenta un messaggio email in modo più dettagliato e specifico per MAPI. Fornisce l’accesso a un’ampia gamma di proprietà e dettagli del messaggio email, consentendo elaborazioni più avanzate e specializzate.

I campioni di codice seguenti dimostrano come estrarre gli oggetti di base delle email e salvare messaggi email dettagliati da un file Outlook OLM usando enumerate_messages() per l’estrazione dell’oggetto e enumerate_mapi_messages() per salvare i messaggi come file .msg.

Estrai informazioni base delle email usando il metodo ’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)

Salva messaggi email dettagliati usando il metodo ’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")

Recupera il numero totale di messaggi nella cartella OLM

Il OlmFolder la classe ti offre ancora più opzioni con i seguenti metodi:

  • has_messages - Restituisce un valore che indica se la cartella corrente contiene messaggi.
  • message_count - Restituisce il conteggio dei messaggi.

Il campione di codice qui sotto mostra come utilizzare questi metodi:

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

Ottieni o imposta le date di modifica per i messaggi Outlook OLM

Aspose.Email rende possibile recuperare informazioni sull’ultima data di modifica di un messaggio email. La proprietà modified_date della OlmMessageInfo la classe rappresenta la data e l’ora in cui il messaggio è stato modificato l’ultima volta.

Ecco un esempio che dimostra l’uso della proprietà:

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

Estrazione del contenuto OLM

Estrai email da file Outlook OLM

Puoi recuperare i dati effettivi del messaggio MAPI da uno storage email usando il metodo extract_mapi_message(message_info) della OlmStorage classe. Questo metodo estrae il messaggio MAPI dallo storage in base al message_info fornito.

Il campione di codice seguente dimostra come utilizzare questo metodo:

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)

Estrai i messaggi Outlook da file OLM per identificatore

Per accedere ai dati del messaggio MAPI, puoi usare la proprietà entry_id per ottenere l’identificatore unico (Entry ID) di un messaggio usando il OlmMessageInfo classe. Quindi, puoi utilizzare il metodo extract_mapi_message(id) della OlmStorage classe, passando l’entry ID come parametro per recuperare il messaggio MAPI associato a tale entry ID. Il seguente frammento di codice dimostra l’uso di queste funzionalità:


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)

Gestione della struttura delle cartelle OLM

Ottenere i percorsi delle cartelle nei file Outlook OLM

Aspose.Email consente di ottenere il percorso gerarchico o la posizione della cartella all’interno del file Outlook OLM. L’API fornisce la proprietà path della OlmFolder classe che restituisce il percorso della cartella. Il seguente frammento di codice dimostra l’uso di questa proprietà:

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)

Contare gli elementi nelle cartelle Outlook OLM

Aspose.Email fornisce la possibilità di contare il numero totale di messaggi email contenuti nella cartella specifica di un file Outlook OLM. La proprietà message_count della OlmFolder classe restituisce il conteggio totale degli elementi (messaggi email) memorizzati all’interno di una cartella specifica nel file OLM. Il seguente frammento di codice dimostra l’uso di questa proprietà:

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)

Ottieni il conteggio totale degli elementi nei file Outlook OLM

Il metodo get_total_items_count() della OlmStorage la classe restituisce il numero totale di messaggi contenuti nello storage OLM come mostrato nel codice di esempio qui sotto:

import aspose.email as ae

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

Gestione delle categorie di Outlook

Recuperare i colori delle categorie di Outlook

Con Aspose.Email, è possibile recuperare e utilizzare facilmente i colori delle categorie associate alle categorie degli elementi di Outlook memorizzate nei file OLM. Il OlmItemCategory classe consente di accedere ai nomi delle categorie e ai rispettivi colori rappresentati in formato esadecimale. Il OlmStorage la classe include il metodo GetCategories() per recuperare un elenco di categorie dallo storage OLM. Implementando il codice di esempio qui sotto, puoi recuperare facilmente tutte le categorie utilizzate da un file di storage OML e accedere al nome della categoria insieme al suo colore.

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

Inoltre, è possibile recuperare il colore della categoria associata a messaggi specifici iterando sui messaggi in una cartella e accedendo al colore della categoria corrispondente in base al nome della categoria.

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