Leia Arquivos PST do Outlook, Recupere Informações de Pastas e Subpastas

Aspose.Email para .NET fornece uma API para leitura de arquivos PST do Microsoft Outlook. Você pode carregar um arquivo PST do disco ou de um fluxo em uma instância da PersonalStorage classe para acessar informações detalhadas sobre seu conteúdo, como pastas, subpastas e mensagens. Além disso, a API fornece funcionalidade para incluir pastas de pesquisa ao recuperar mensagens de pastas PST.

Carregando um Arquivo PST

Um arquivo PST do Outlook pode ser carregado em uma instância da PersonalStorage classe. O trecho de código a seguir mostra como carregar o arquivo PST.

Exibindo Informações do PST

Depois carregando um arquivo PST, você pode obter informações sobre o nome de exibição do arquivo, pasta raiz, subpastas e contagem de mensagens. O trecho de código a seguir mostra como exibir o nome do arquivo PST, pastas e número de mensagens nas pastas:

Obter Apenas Pastas Criadas pelo Usuário

Arquivos PST/OST podem conter pastas que foram criadas por um usuário, ou seja, excluindo todas as pastas IPM padrão. Aspose.Email fornece funcionalidade para acessar apenas pastas criadas pelo usuário usando a propriedade only_folders_created_by_user da PersonalStorageQueryBuilder classe. Você pode definir esta propriedade como True para obter apenas pastas criadas pelo usuário. O trecho de código a seguir demonstra como usar a propriedade only_folders_created_by_user em seu projeto:

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

Identificando Pastas Pré‑definidas

Para descobrir se uma pasta dentro de um arquivo PST é uma pasta padrão, use o método get_predefined_type da FolderInfo classe. Pastas padrão (ou pré‑definidas), ao contrário das pastas criadas pelo usuário, são pastas criadas pelo Outlook quando você adiciona uma conta de e‑mail, como Caixa de Entrada, Itens Enviados, Rascunhos, Itens Excluídos, Calendário, Tarefas, Notas etc.

O exemplo de código abaixo demonstra como usar este método em um projeto. Se definido como True, ele retorna o tipo pré‑definido para a pasta pai de nível superior. Isso determina se a pasta atual é uma subpasta de uma pasta pré‑definida. Se definido como False, ele retorna o tipo pré‑definido para a pasta atual.

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

Gerenciando RSS Feeds em PersonalStorage

Aspose.Email fornece funcionalidade para obter uma referência a uma pasta pré‑definida RSS Feeds, permitindo que os desenvolvedores acessem e manipulem programaticamente os feeds RSS armazenados em um arquivo PST do Outlook. Ao obter uma referência à "pasta RSS Feeds", os desenvolvedores podem trabalhar com os dados do feed RSS, o que pode incluir assinar novos feeds, atualizar feeds existentes ou extrair informações dos feeds.

O valor de RssFeeds na StandardIpmFolder O enum normalmente representaria o tipo de pasta pré‑definido projetado especificamente para armazenar feeds RSS dentro de um arquivo PST do Outlook. Usando esse valor enum, os desenvolvedores podem direcionar e interagir programaticamente com a "pasta RSS Feeds". Os exemplos de código a seguir demonstrarão como implementar esse recurso em seu projeto:

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)

Para adicionar uma pasta RSS Feeds, use o trecho de código a seguir:

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)

Analisando Pastas Pesquisáveis

Aspose.Email fornece um FolderKind Enumeração para trabalhar com diferentes tipos de pastas PST. Além de pastas NORMAL, funciona com pastas SEARCH. Uma pasta SEARCH é uma pasta virtual que fornece uma visão de todos os itens de e‑mail que correspondem a critérios de pesquisa específicos. Para analisar pastas SEARCH, use o trecho de código a seguir:

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

Recuperando Informações da Pasta Pai

O fragmento de código a seguir mostra como recuperar informações da pasta pai de MessageInfo.

Recuperando uma Subpasta PST por Caminho

Para recuperar uma subpasta PST por caminho, use o método get_sub_folder da FolderInfo classe. Recupera uma subpasta específica dentro de um diretório ou sistema de arquivos.

O método recebe os seguintes parâmetros:

  • name - representa o nome da subpasta que precisa ser recuperada. É usado para especificar o nome ou identificador da subpasta que o método deve buscar.

  • ignore_case - é um valor booleano que determina se o método deve ignorar a diferenciação entre maiúsculas e minúsculas ao comparar o nome da subpasta. Se definido como True, o método considerará a correspondência de nomes sem levar em conta maiúsculas/minúsculas (ex.: "folder" e "Folder" serão tratados como iguais). Se definido como False, o método realizará uma comparação sensível a maiúsculas.

  • handle_path_separator - é um valor booleano que especifica se o método deve lidar com o separador de caminho ao procurar a subpasta. Separadores de caminho são caracteres usados para separar pastas em um caminho de diretório (ex.: "\" no Windows ou "/" no Unix). Se definido como True, o método lidará automaticamente com o separador de caminho, garantindo correspondência correta de pastas. Se definido como False, ele tratará o separador como parte do nome da subpasta, resultando em um comportamento de busca diferente.

O exemplo de código a seguir mostra como recuperar uma subpasta PST por caminho:

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)