Leer archivos PST de Outlook, recuperar información de carpetas y subcarpetas
Aspose.Email para .NET ofrece una API para leer archivos PST de Microsoft Outlook. Puede cargar un archivo PST desde el disco o transmitirlo a una instancia de la PersonalStorage clase para acceder a información detallada sobre su contenido, como carpetas, subcarpetas y mensajes. Además, la API proporciona funcionalidad para incluir carpetas de búsqueda al recuperar mensajes de carpetas PST.
Cargando un archivo PST
Un archivo PST de Outlook puede cargarse en una instancia de la PersonalStorage clase. El siguiente fragmento de código le muestra cómo cargar el archivo PST.
Mostrando información del PST
Después cargando un archivo PST, puede obtener la información sobre el nombre para mostrar del archivo, la carpeta raíz, subcarpetas y el recuento de mensajes. El siguiente fragmento de código le muestra cómo mostrar el nombre del archivo PST, las carpetas y el número de mensajes en las carpetas:
Obtener solo carpetas creadas por el usuario
Los archivos PST/OST pueden contener carpetas creadas por un usuario, es decir, excluyendo todas las carpetas IPM estándar. Aspose.Email brinda la funcionalidad de acceder solo a carpetas creadas por el usuario usando la propiedad only_folders_created_by_user de la PersonalStorageQueryBuilder clase. Puede establecer esta propiedad en True para obtener solo carpetas creadas por el usuario. El siguiente fragmento de código demuestra cómo puede usar la propiedad only_folders_created_by_user en su proyecto:
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 carpetas predefinidas
Para saber si una carpeta dentro de un archivo PST es una carpeta estándar, use el método get_predefined_type de la FolderInfo clase. Las carpetas estándar (o predefinidas), a diferencia de las carpetas creadas por el usuario, son carpetas que Outlook crea cuando agrega una cuenta de correo, como Bandeja de entrada, Elementos enviados, Borradores, Elementos eliminados, Calendario, Tareas, Notas, etc.
El siguiente ejemplo de código muestra cómo usar este método en un proyecto. Si se establece en True, devuelve el tipo predefinido para la carpeta padre de nivel superior. Esto determina si la carpeta actual es una subcarpeta de una carpeta predefinida. Si se establece en False, devuelve el tipo predefinido para la carpeta actual.
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("-----------------------------------")
Gestionando RSS Feeds en PersonalStorage
Aspose.Email ofrece funcionalidad para obtener una referencia a una carpeta predefinida RSS Feeds, permitiendo a los desarrolladores acceder y manipular programáticamente los feeds RSS almacenados en un archivo PST de Outlook. Al obtener una referencia a la "carpeta RSS Feeds", los desarrolladores pueden trabajar con los datos del feed RSS, lo que puede incluir suscribirse a nuevos feeds, actualizar feeds existentes o extraer información de los feeds.
El valor de RssFeeds en el StandardIpmFolder el enum típicamente representaría el tipo de carpeta predefinida diseñada específicamente para almacenar feeds RSS dentro de un archivo PST de Outlook. Usando este valor de enum, los desarrolladores pueden dirigirse e interactuar con la "carpeta RSS Feeds" programáticamente. Los siguientes ejemplos de código demostrarán cómo implementar esta característica en su proyecto:
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 agregar una carpeta RSS Feeds, use el siguiente fragmento 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)
Analizando carpetas buscables
Aspose.Email proporciona una FolderKind enumeración para trabajar con diferentes tipos de carpetas PST. Además de las carpetas NORMAL, funciona con carpetas SEARCH. Una carpeta SEARCH es una carpeta virtual que proporciona una vista de todos los elementos de correo que coinciden con criterios de búsqueda específicos. Para analizar carpetas SEARCH, use el siguiente fragmento 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)
# 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 información de la carpeta padre
El siguiente fragmento de código muestra cómo obtener información de la carpeta padre desde MessageInfo.
Recuperando una subcarpeta PST por ruta
Para recuperar una subcarpeta PST por ruta, use el método get_sub_folder de la FolderInfo clase. Recupera una subcarpeta específica dentro de un directorio o sistema de archivos.
El método toma los siguientes parámetros:
-
name - representa el nombre de la subcarpeta que se debe recuperar. Se usa para especificar el nombre o identificador de la subcarpeta que el método debe buscar.
-
ignore_case - es un valor booleano que determina si el método debe ignorar la sensibilidad a mayúsculas y minúsculas al comparar el nombre de la subcarpeta. Si se establece en True, el método considerará la coincidencia del nombre sin distinguir mayúsculas (p.ej., "folder" y "Folder" se tratarán como iguales). Si se establece en False, el método realizará una comparación sensible a mayúsculas.
-
handle_path_separator - es un valor booleano que especifica si el método debe manejar el separador de ruta al buscar la subcarpeta. Los separadores de ruta son caracteres usados para separar carpetas en una ruta de directorio (p.ej., "\" en Windows o "/" en Unix). Si se establece en True, el método manejará automáticamente el separador de ruta, asegurando una coincidencia correcta de carpetas. Si se establece en False, tratará el separador de ruta como parte del nombre de la subcarpeta, resultando en un comportamiento de búsqueda diferente.
El siguiente ejemplo de código muestra cómo recuperar una subcarpeta PST por ruta:
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)