Leggi i file PST di Outlook, recupera informazioni su cartelle e sottocartelle

Aspose.Email per .NET fornisce un’API per la lettura dei file PST di Microsoft Outlook. È possibile caricare un file PST dal disco o dallo stream in un’istanza della PersonalStorage classe per accedere a informazioni dettagliate sul suo contenuto, come cartelle, sottocartelle e messaggi. Inoltre, l’API fornisce la funzionalità di includere cartelle di ricerca quando si recuperano messaggi da cartelle PST.

Caricamento di un file PST

Un file PST di Outlook può essere caricato in un’istanza della PersonalStorage classe. Il seguente frammento di codice mostra come caricare il file PST.

Visualizzazione delle informazioni PST

Dopo caricamento di un file PST, puoi ottenere le informazioni sul nome visualizzato del file, la cartella root, le sottocartelle e il conteggio dei messaggi. Il seguente frammento di codice mostra come visualizzare il nome del file PST, le cartelle e il numero di messaggi nelle cartelle:

Ottieni solo le cartelle create dall’utente

I file PST/OST possono contenere cartelle create da un utente, cioè escludendo tutte le cartelle IPM standard. Aspose.Email fornisce la funzionalità di accedere solo alle cartelle create dall’utente usando la proprietà only_folders_created_by_user della PersonalStorageQueryBuilder classe. Puoi impostare questa proprietà su True per ottenere solo le cartelle create dall’utente. Il seguente frammento di codice dimostra come puoi usare la proprietà only_folders_created_by_user nel tuo progetto:

import aspose.email as ae

pst = ae.storage.pst.PersonalStorage.from_file("my.pst")

query_builder = ae.storage.pst.PersonalStorageQueryBuilder()
query_builder.only_folders_created_by_user.equals(True)

folders = pst.root_folder.get_sub_folders(query_builder.get_query())

for folder in folders:
    print(f"Folder: {folder.display_name}")

Identificazione delle cartelle predefinite

Per scoprire se una cartella all’interno di un file PST è una cartella standard, utilizza il metodo get_predefined_type della FolderInfo classe. Le cartelle standard (o predefinite), a differenza delle cartelle create dall’utente, sono cartelle create da Outlook quando aggiungi un account email, come Posta in arrivo, Posta inviata, Bozze, Elementi eliminati, Calendario, Attività, Note, ecc.

Il campione di codice qui sotto dimostra come utilizzare questo metodo in un progetto. Se impostato su True, restituisce il tipo predefinito per la cartella superiore di livello. Questo determina se la cartella corrente è una sottocartella di una cartella predefinita. Se impostato su False, restituisce il tipo predefinito per la cartella corrente.

import aspose.email as ae

pst = ae.storage.pst.PersonalStorage.from_file("my.pst")

folders = pst.root_folder.get_sub_folders()

for folder in folders:
    print(f"Folder: {folder.display_name}")
    print(f"Is predefined: {folder.get_predefined_type(False) != ae.storage.pst.StandardIpmFolder.UNSPECIFIED}")
    print("-----------------------------------")

Gestione dei feed RSS in PersonalStorage

Aspose.Email fornisce funzionalità per recuperare un riferimento a una cartella predefinita RSS Feeds, permettendo agli sviluppatori di accedere e manipolare programmaticamente i feed RSS memorizzati in un file PST di Outlook. Ottenendo un riferimento alla "cartella RSS Feeds", gli sviluppatori possono lavorare con i dati dei feed RSS, includendo la sottoscrizione a nuovi feed, l’aggiornamento di feed esistenti o l’estrazione di informazioni dai feed.

Il valore di RssFeeds nella StandardIpmFolder L’enumerazione tipicamente rappresenterebbe il tipo di cartella predefinita specificamente progettata per memorizzare i feed RSS all’interno di un file PST di Outlook. Utilizzando questo valore enum, gli sviluppatori possono mirare e interagire con la "cartella RSS Feeds" programmaticamente. I seguenti esempi di codice dimostreranno come implementare questa funzionalità nel tuo progetto:

import aspose.email as ae

pst = ae.storage.pst.PersonalStorage.from_file("my.pst")

rss_folder = pst.get_predefined_folder(ae.storage.pst.StandardIpmFolder.RSS_FEEDS)

Per aggiungere una cartella RSS Feeds, usa il seguente frammento di codice:

import aspose.email as ae

pst = ae.storage.pst.PersonalStorage.from_file("my.pst")

rss_folder = pst.create_predefined_folder("RSS Feeds", ae.storage.pst.StandardIpmFolder.RSS_FEEDS)

Analisi delle cartelle ricercabili

Aspose.Email fornisce una FolderKind enumerazione per lavorare con diversi tipi di cartelle PST. Oltre alle cartelle NORMAL, funziona con le cartelle SEARCH. Una cartella SEARCH è una cartella virtuale che fornisce una visualizzazione di tutti gli elementi email che corrispondono a criteri di ricerca specifici. Per analizzare le cartelle SEARCH, usa il seguente frammento di codice:

import aspose.email as ae

pst = ae.storage.pst.PersonalStorage.from_file("my.pst")

folders = pst.root_folder.get_sub_folders(ae.storage.pst.FolderKind.SEARCH | ae.storage.pst.FolderKind.NORMAL)

# Browse through each folder to display folder name and number of messages
for folder in folders:
    print(f"Folder: {folder.display_name}")
    sub_folders = folder.get_sub_folders(ae.storage.pst.FolderKind.SEARCH | ae.storage.pst.FolderKind.NORMAL)
    for sub_folder in sub_folders:
        print(f"Sub-folder: {folder.display_name}")

Recupero delle informazioni della cartella superiore

Il frammento di codice seguente mostra come recuperare le informazioni della cartella genitore da MessageInfo.

Recupero di una sottocartella PST per percorso

Per recuperare una sottocartella PST per percorso, utilizza il metodo get_sub_folder della FolderInfo classe. Recupera una specifica sottocartella all’interno di una directory o file system.

Il metodo accetta i seguenti parametri:

  • name - rappresenta il nome della sottocartella da recuperare. Viene usato per specificare il nome o l’identificatore della sottocartella che il metodo deve cercare.

  • ignore_case - è un valore booleano che determina se il metodo deve ignorare la distinzione tra maiuscole e minuscole quando confronta il nome della sottocartella. Se impostato su True, il metodo considererà le corrispondenze dei nomi senza distinguere le maiuscole (es., "folder" e "Folder" saranno trattati come uguali). Se impostato su False, il metodo eseguirà un confronto sensibile al caso.

  • handle_path_separator - è un valore booleano che specifica se il metodo deve gestire il separatore di percorso durante la ricerca della sottocartella. I separatori di percorso sono caratteri usati per separare le cartelle in un percorso di directory (es., "\" in Windows o "/" in Unix). Se impostato su True, il metodo gestirà automaticamente il separatore di percorso, garantendo un corretto abbinamento delle cartelle. Se impostato su False, tratterà il separatore come parte del nome della sottocartella, risultando in un comportamento di ricerca diverso.

Il seguente esempio di codice mostra come recuperare una sottocartella PST per percorso:

import aspose.email as ae

pst = ae.storage.pst.PersonalStorage.from_file("my.pst")

# In this sample, the method will return a ‘Jan’ named folder
# that is located at the Inbox\Reports\ path 
# relative to the root folder.
folder = pst.root_folder.get_sub_folder("Inbox\Reports\Jan", True, True)