Ler Arquivo PST do Outlook e Obter Informações sobre Pastas e Subpastas
Aspose.Email para .NET fornece uma API para ler arquivos PST do Microsoft Outlook. Você pode carregar um arquivo PST do disco ou stream para uma instância da classe PersonalStorage e obter informações sobre seu conteúdo, por exemplo, pastas, subpastas e mensagens. A API também fornece a capacidade de incluir pastas de busca ao percorrer mensagens das pastas PST.
Carregando um Arquivo PST
Um arquivo PST do Outlook pode ser carregado em uma instância da classe PersonalStorage. O seguinte trecho de código mostra como carregar o arquivo PST.
Exibindo Informações do PST
Após carregar o arquivo PST na classe PersonalStorage, você pode obter informações sobre o nome do arquivo, pasta raiz, subpastas e contagem de mensagens. O seguinte trecho de código mostra como exibir o nome do arquivo PST, pastas e número de mensagens nas pastas.
Obter apenas pastas criadas pelo usuário
Os 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 a capacidade de acessar apenas pastas criadas pelo usuário utilizando a propriedade only_folders_created_by_user da classe PersonalStorageQueryBuilder. Você pode definir a propriedade only_folders_created_by_user como True para obter apenas pastas criadas pelo usuário. O seguinte trecho de código demonstra como você pode 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}")
Verificando se a pasta está em uma pasta pré-definida
O método “get_predefined_type” da classe FolderInfo permite descobrir se uma pasta dentro de um arquivo PST é uma pasta padrão. Pastas padrão (ou pré-definidas), em oposição às pastas criadas pelo usuário, são pastas que são 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, retorna o tipo pré-definido para a pasta principal de nível superior. Isso determina se a pasta atual é uma subpasta de uma pasta pré-definida. Se definido como False, 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("-----------------------------------")
Obtendo e adicionando uma pasta padrão de Feeds RSS no PersonalStorage
Aspose.Email fornece funcionalidade para recuperar uma referência a uma pasta pré-definida de Feeds RSS, permitindo aos desenvolvedores acessar e manipular programaticamente os feeds RSS armazenados em um arquivo PST do Outlook. Ao obter uma referência à “pasta de Feeds RSS”, os desenvolvedores podem trabalhar com os dados do feed RSS, que podem incluir se inscrever em novos feeds, atualizar feeds existentes ou extrair informações dos feeds.
O valor de RssFeeds no enum StandardIpmFolder normalmente representaria o tipo de pasta pré-definido especificamente projetado para armazenar feeds RSS dentro de um arquivo PST do Outlook. Usando este valor do enum, os desenvolvedores podem direcionar e interagir com a “pasta de Feeds RSS” programaticamente. Os seguintes exemplos de código demonstrarão como implementar este 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 de Feeds RSS, utilize o seguinte trecho de código:
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 uma enumeração FolderKind para trabalhar com diferentes tipos de pastas PST. Além de pastas NORMAIS, ele trabalha com pastas de PESQUISA. Uma pasta de PESQUISA é 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 de PESQUISA, utilize o seguinte trecho de código:
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)
# Percorra cada pasta para exibir o nome da pasta e o número de mensagens
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 a partir de MessageInfo
O seguinte trecho de código mostra como recuperar informações da pasta pai a partir de MessageInfo.
Recuperando uma subpasta PST pelo caminho
Para recuperar uma subpasta PST pelo caminho, utilize o método get_sub_folder da classe FolderInfo. Ele recupera uma subpasta específica dentro de um diretório ou sistema de arquivos.
O método leva 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 procurar.
-
ignore_case - é um valor booleano que determina se o método deve ignorar a sensibilidade a 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 considerar a capitalização (por exemplo, “pasta” e “Pasta” serão tratados como iguais). Se definido como False, o método realizará uma comparação sensível a maiúsculas e minúsculas.
-
handle_path_separator - é um valor booleano que especifica se o método deve lidar com o separador de caminho ao procurar pela subpasta. Os separadores de caminho são caracteres usados para separar pastas em um caminho de diretório (por exemplo,
\
no Windows ou/
no Unix). Se definido como True, o método lidará automaticamente com o separador de caminho, garantindo uma correspondência correta de pastas. Se definido como False, ele tratará o separador de caminho como parte do nome da subpasta, resultando em um comportamento de busca diferente.
O seguinte exemplo de código mostra como recuperar uma subpasta PST pelo caminho:
import aspose.email as ae
pst = ae.storage.pst.PersonalStorage.from_file("my.pst")
# Neste exemplo, o método retornará uma pasta chamada 'Jan'
# que está localizada no caminho Inbox\Reports\
# relativo à pasta raiz.
folder = pst.root_folder.get_sub_folder("Inbox\Reports\Jan", True, True)