Läs Outlook PST-filer, hämta information om mappar och undermappar

Aspose.Email för .NET tillhandahåller ett API för att läsa Microsoft Outlook PST-filer. Du kan ladda en PST-fil från disk eller strömma den till en instans av PersonalStorage klassen för att komma åt detaljerad information om dess innehåll, såsom mappar, undermappar och meddelanden. Dessutom erbjuder API:t funktionalitet för att inkludera sökmappar när man hämtar meddelanden från PST-mappar.

Laddar en PST-fil

En Outlook PST-fil kan laddas i en instans av PersonalStorage klassen. Följande kodexempel visar hur du laddar PST-filen.

Visa PST-information

Efter läser in en PST-fil, du kan få information om filens display‑namn, rotmapp, undermappar och antalet meddelanden. Följande kodexempel visar hur du visar namnet på PST-filen, mapparna och antalet meddelanden i mapparna:

Hämta endast användarskapade mappar

PST/OST-filer kan innehålla mappar som skapats av en användare, dvs. exklusive alla standard‑IPM‑mappar. Aspose.Email erbjuder funktionalitet för att endast komma åt användarskapade mappar genom att använda only_folders_created_by_user-egenskapen i PersonalStorageQueryBuilder klassen. Du kan sätta denna egenskap till True för att endast få användarskapade mappar. Följande kodexempel visar hur du kan använda only_folders_created_by_user-egenskapen i ditt projekt:

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

Identifiera fördefinierade mappar

För att ta reda på om en mapp i en PST-fil är en standardmapp, använd get_predefined_type-metoden i FolderInfo klassen. Standard‑ (eller fördefinierade) mappar, till skillnad från användarskapade mappar, är mappar som skapas av Outlook när du lägger till ett e‑postkonto, såsom Inkorg, Skickade, Utkast, Borttagna, Kalender, Uppgifter, Anteckningar etc.

Kodexemplet nedan demonstrerar hur du använder den här metoden i ett projekt. Om den är inställd på True returneras den fördefinierade typen för den översta föräldramappen. Detta avgör om den aktuella mappen är en undermapp till en fördefinierad mapp. Om den är inställd på False returneras den fördefinierade typen för den aktuella mappen.

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

Hantera RSS‑flöden i PersonalStorage

Aspose.Email erbjuder funktionalitet för att hämta en referens till en fördefinierad RSS‑flöden-mapp, vilket gör det möjligt för utvecklare att programatiskt komma åt och manipulera RSS‑flöden som lagras i en Outlook PST-fil. Genom att få en referens till "RSS Feeds folder" kan utvecklare arbeta med RSS‑flödesdata, vilket kan inkludera att prenumerera på nya flöden, uppdatera befintliga flöden eller extrahera information från flödena.

Värdet för RssFeeds i StandardIpmFolder enum representerar vanligtvis den fördefinierade mapptypen som är speciellt designad för att lagra RSS‑flöden i en Outlook PST-fil. Genom att använda detta enum‑värde kan utvecklare programatiskt rikta in sig på och interagera med "RSS Feeds folder". Följande kodexempel visar hur du implementerar den här funktionen i ditt projekt:

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)

För att lägga till en RSS‑flöden-mapp, använd följande kodexempel:

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)

Parsra sökbara mappar

Aspose.Email tillhandahåller en FolderKind enum för att arbeta med olika typer av PST-mappar. Förutom NORMAL-mappar fungerar den med SEARCH‑mappar. En SEARCH‑mapp är en virtuell mapp som visar alla e‑postobjekt som matchar specifika sökkriterier. För att parsra SEARCH‑mappar, använd följande kodexempel:

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

Hämta föräldramappinformation

Följande kodexempel visar hur du hämtar information om föräldramappen från MessageInfo.

Hämtar en PST‑undermapp via sökväg

För att hämta en PST‑undermapp via sökväg, använd get_sub_folder-metoden i FolderInfo klassen. Den hämtar en specifik undermapp i ett katalog‑ eller filsystem.

Metoden tar emot följande parametrar:

  • name – representerar namnet på den undermapp som ska hämtas. Det används för att ange namn eller identifierare för den undermapp som metoden ska söka efter.

  • ignore_case – är ett booleskt värde som bestämmer om metoden ska ignorera skiftlägeskänslighet när den jämför namnet på undermappen. Om den är satt till True jämförs namnen utan att beakta skiftläge (t.ex. "folder" och "Folder" behandlas som samma). Om den är satt till False utförs en skiftlägeskänslig jämförelse.

  • handle_path_separator – är ett booleskt värde som anger om metoden ska hantera sökvägsseparatorn när den söker efter undermappen. Sökvägsseparatorer är tecken som används för att separera mappar i en katalogsökväg (t.ex. "\" i Windows eller "/" i Unix). Om den är satt till True hanterar metoden separatorn automatiskt och säkerställer korrekt mappmatchning. Om den är satt till False behandlas separatorn som en del av undermappens namn, vilket ger ett annat sökbeteende.

Följande kodexempel visar hur du hämtar en PST-undermapp via sökväg:

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)