Čtení Outlook PST souborů, získávání informací o složkách a podadresářích

Aspose.Email pro .NET poskytuje API pro čtení souborů Microsoft Outlook PST. Můžete načíst soubor PST z disku nebo streamu do instance třídy PersonalStorage třída pro přístup k podrobným informacím o jeho obsahu, jako jsou složky, podadresáře a zprávy. Navíc API poskytuje funkcionalitu zahrnout vyhledávací složky při získávání zpráv ze složek PST.

Načítání souboru PST

Soubor Outlook PST může být načten v instanci třídy PersonalStorage třída. Následující ukázka kódu vám ukazuje, jak načíst soubor PST.

Zobrazení informací o PST

Po načítání souboru PST, můžete získat informace o zobrazovaném názvu souboru, kořenové složce, podadresářích a počtu zpráv. Následující ukázka kódu vám ukazuje, jak zobrazit název souboru PST, složky a počet zpráv ve složkách:

Získat pouze uživatelem vytvořené složky

Soubory PST/OST mohou obsahovat složky vytvořené uživatelem, tj. s vyloučením všech standardních IPM složek. Aspose.Email poskytuje funkci přístupu pouze k uživatelem vytvořeným složkám pomocí vlastnosti only_folders_created_by_user třídy PersonalStorageQueryBuilder třída. Tato vlastnost může být nastavena na True, aby se získaly pouze uživatelem vytvořené složky. Následující ukázka kódu demonstruje, jak můžete použít vlastnost only_folders_created_by_user ve vašem projektu:

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

Identifikace předdefinovaných složek

Pro zjištění, zda je složka v souboru PST standardní, použijte metodu get_predefined_type třídy FolderInfo třída. Standardní (nebo předdefinované) složky, na rozdíl od uživatelem vytvořených složek, jsou složky vytvořené Outlookem při přidání e‑mailového účtu, jako jsou Doručená pošta, Odeslané položky, Koncepty, Odstraněná položka, Kalendář, Úkoly, Poznámky apod.

Níže uvedený ukázkový kód demonstruje, jak tuto metodu použít v projektu. Pokud je nastavena na True, vrací předdefinovaný typ pro nadřazenou složku nejvyšší úrovně. To určuje, zda je aktuální složka podadresářem předdefinované složky. Pokud je nastavena na False, vrací předdefinovaný typ pro aktuální složku.

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

Správa RSS kanálů v PersonalStorage

Aspose.Email poskytuje funkci k získání reference na předdefinovanou složku RSS Feeds, což vývojářům umožňuje programově přistupovat a manipulovat s RSS kanály uloženými v Outlook PST souboru. Získáním reference na „složku RSS Feeds“ mohou vývojáři pracovat s daty RSS kanálů, což může zahrnovat přihlášení k novým kanálům, aktualizaci existujících kanálů nebo extrahování informací z kanálů.

Hodnota RssFeeds v StandardIpmFolder výčtový typ (enum) obvykle představuje předdefinovaný typ složky určený pro ukládání RSS kanálů v Outlook PST souboru. Použitím této hodnoty enum mohou vývojáři programově cílit a pracovat se „složkou RSS Feeds“. Následující ukázky kódu demonstrují, jak implementovat tuto funkci do vašeho projektu:

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)

Pro přidání složky RSS Feeds použijte následující ukázku kódu:

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)

Parsování prohledávatelných složek

Aspose.Email poskytuje FolderKind výčet pro práci s různými typy PST složek. Kromě NORMÁLNÍCH složek funguje i se SLOŽKAMI SEARCH. Složka SEARCH je virtuální složka, která poskytuje pohled na všechny e‑mailové položky odpovídající konkrétním kritériím vyhledávání. Pro parsování složek SEARCH použijte následující ukázku kódu:

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

Získání informací o nadřazené složce

Následující úryvek kódu ukazuje, jak získat informace o nadřazené složce z MessageInfo.

Získání podadresáře PST podle cesty

Pro získání podadresáře PST podle cesty použijte metodu get_sub_folder třídy FolderInfo třída. Získává konkrétní podadresář v rámci adresáře nebo souborového systému.

Metoda přijímá následující parametry:

  • name – představuje název podadresáře, který má být získán. Používá se k určení názvu nebo identifikátoru podadresáře, který má metoda vyhledat.

  • ignore_case – je boolean hodnota, která určuje, zda má metoda při porovnávání názvu podadresáře ignorovat velikost písmen. Pokud je nastavena na True, metoda bude shodu názvu považovat za platnou bez ohledu na velikost (např. „folder“ a „Folder“ budou považovány za stejné). Pokud je nastavena na False, provede se rozlišující porovnání podle velikosti písmen.

  • handle_path_separator – je boolean hodnota, která určuje, zda má metoda při hledání podadresáře zpracovat oddělovač cesty. Oddělovače cesty jsou znaky používané k oddělení složek v adresářové cestě (např. "\" ve Windows nebo "/" v Unixu). Pokud je nastavena na True, metoda automaticky zpracuje oddělovač cesty a zajistí správné porovnání složek. Pokud je nastavena na False, oddělovač cesty bude považován za součást názvu podadresáře, což povede k odlišnému chování vyhledávání.

Následující ukázka kódu ukazuje, jak získat podadresář PST podle cesty:

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)