Outlook‑PST‑bestanden lezen, mappen en submap‑informatie ophalen
Aspose.Email voor .NET biedt een API voor het lezen van Microsoft Outlook‑PST‑bestanden. U kunt een PST‑bestand van de schijf of een stream laden in een instantie van de PersonalStorage klasse om gedetailleerde informatie over de inhoud te benaderen, zoals mappen, submappen en berichten. Bovendien biedt de API functionaliteit om zoekmappen op te nemen bij het ophalen van berichten uit PST‑mappen.
Een PST‑bestand laden
Een Outlook‑PST‑bestand kan worden geladen in een instantie van de PersonalStorage klasse. Het volgende codefragment laat zien hoe u het PST‑bestand laadt.
PST‑informatie weergeven
Na een PST‑bestand laden, u kunt informatie krijgen over de bestandsweergavenaam, root‑map, submappen en aantal berichten. Het volgende codefragment toont hoe u de naam van het PST‑bestand, de mappen en het aantal berichten in de mappen weergeeft:
Alleen door de gebruiker gemaakte mappen ophalen
PST/OST‑bestanden kunnen mappen bevatten die zijn aangemaakt door een gebruiker, d.w.z. alle standaard‑IPM‑mappen uitsluitend. Aspose.Email biedt de mogelijkheid om alleen door de gebruiker aangemaakte mappen te benaderen via de only_folders_created_by_user-eigenschap van de PersonalStorageQueryBuilder klasse. U kunt deze eigenschap instellen op True om alleen door de gebruiker aangemaakte mappen te krijgen. Het volgende codefragment toont hoe u de only_folders_created_by_user-eigenschap in uw project kunt gebruiken:
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}")
Vooraf gedefinieerde mappen identificeren
Om te achterhalen of een map binnen een PST‑bestand een standaardmap is, gebruik de get_predefined_type-methode van de FolderInfo klasse. Standaard (of vooraf gedefinieerde) mappen, in tegenstelling tot door de gebruiker aangemaakte mappen, zijn mappen die Outlook creëert wanneer u een e‑mailaccount toevoegt, zoals Postvak IN, Verzonden items, Concepten, Verwijderde items, Agenda, Taken, Notities enz.
Het onderstaande codevoorbeeld toont hoe u deze methode in een project gebruikt. Indien ingesteld op True, retourneert het het vooraf gedefinieerde type voor de bovenste map. Dit bepaalt of de huidige map een submap is van een vooraf gedefinieerde map. Indien ingesteld op False, retourneert het het vooraf gedefinieerde type voor de huidige map.
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("-----------------------------------")
RSS‑feeds beheren in PersonalStorage
Aspose.Email biedt functionaliteit om een referentie naar een vooraf gedefinieerde RSS‑Feeds‑map op te halen, zodat ontwikkelaars programmatically toegang krijgen tot en de RSS‑feeds die in een Outlook‑PST‑bestand zijn opgeslagen kunnen manipuleren. Door een referentie naar de "RSS‑Feeds‑map" te verkrijgen, kunnen ontwikkelaars werken met de RSS‑feed‑gegevens, waaronder het abonneren op nieuwe feeds, het bijwerken van bestaande feeds of het extraheren van informatie uit de feeds.
De waarde van RssFeeds in de StandardIpmFolder enum zou typisch de vooraf gedefinieerde map‑type vertegenwoordigen die specifiek is ontworpen voor het opslaan van RSS‑feeds binnen een Outlook‑PST‑bestand. Met deze enum‑waarde kunnen ontwikkelaars programmatically de "RSS‑feeds‑map" benaderen en ermee interageren. De volgende codevoorbeelden laten zien hoe u deze functionaliteit in uw project implementeert:
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)
Om een RSS‑feeds‑map toe te voegen, gebruik het volgende codefragment:
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)
Zoekbare mappen parseren
Aspose.Email biedt een FolderKind enumeratie om te werken met verschillende soorten PST‑mappen. Naast normale (NORMAL) mappen werkt het met zoekmappen (SEARCH). Een zoekmap is een virtuele map die een overzicht geeft van alle e‑mailitems die voldoen aan specifieke zoekcriteria. Om zoekmappen te parsen, gebruik het volgende codefragment:
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}")
Ophalen van bovenliggende map‑informatie
Het volgende code‑fragment laat zien hoe u map‑informatie van de bovenliggende map kunt ophalen vanuit MessageInfo.
Een PST‑submap ophalen op pad
Om een PST‑submap op pad op te halen, gebruik de get_sub_folder-methode van de FolderInfo klasse. Het haalt een specifieke submap op binnen een directory of bestandssysteem.
De methode neemt de volgende parameters:
-
name - vertegenwoordigt de naam van de submap die opgehaald moet worden. Het wordt gebruikt om de naam of identifier van de submap op te geven waar de methode naar moet zoeken.
-
ignore_case - is een booleaanse waarde die bepaalt of de methode hoofdlettergevoeligheid moet negeren bij het vergelijken van de submapnaam. Indien ingesteld op True, wordt de naamvergelijking uitgevoerd ongeacht hoofdletters (bijv. "folder" en "Folder" worden als hetzelfde beschouwd). Indien ingesteld op False, wordt een hoofdlettergevoelige vergelijking uitgevoerd.
-
handle_path_separator - is een booleaanse waarde die aangeeft of de methode het pad‑scheidingsteken moet afhandelen bij het zoeken naar de submap. Pad‑scheidingstekens zijn karakters die mappen in een directorypad scheiden (bijv. "\" in Windows of "/" in Unix). Indien ingesteld op True, handelt de methode het scheidingsteken automatisch af, waardoor de juiste mapmatch wordt gegarandeerd. Indien ingesteld op False, wordt het scheidingsteken beschouwd als onderdeel van de submapnaam, wat leidt tot een ander zoekgedrag.
Het volgende codevoorbeeld laat zien hoe u een PST‑submap kunt ophalen op pad:
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)