Te recomendamos que pruebes esta solución en un ambiente controlado antes de pasarlo a producción, saludos.
Solución:
Sí, es mejor escribirlo como el nombre de la carpeta en lugar de escribir los números de carpeta.
Al igual que mi jerarquía de carpetas es: Outlook_Mails> Bandeja de entrada> Importante
outlook = win32.com.client.Dispatch("Outlook.Application")
mapi = outlook.GetNamespace("MAPI")
your_folder = mapi.Folders['Outlook_Mails'].Folders['Inbox'].Folders['Important']
for message in your_folder.Items:
print(message.Subject)
Este es el código que estoy usando para hacer una tarea similar.
outlook = win32com.client.Dispatch("Outlook.Application")
namespace = outlook.GetNamespace("MAPI")
root_folder = namespace.Folders.Item(1)
subfolder = root_folder.Folders['All'].Folders['Main Folder'].Folders['Subfolder']
messages = subfolder.Items
Esto encuentra los mensajes en la carpeta “Todos/Carpeta principal/Subcarpeta”.
No se puede hacer eso: Outlook almacena en caché las carpetas predeterminadas compartidas en el archivo OST principal. Las subcarpetas no se almacenan en caché. Si el buzón en cuestión se agrega como un almacén delegado, debería poder analizar la carpeta en cuestión usando Namespace.Folders
o Namespace.Stores
.
De lo contrario, puede usar Redemption y su RDOSession.GetSharedDefaultFolder
– la carpeta se abrirá en el modo en línea con todas sus subcarpetas (RDOFolder.Folders
).
Si para ti ha resultado de utilidad este post, nos gustaría que lo compartas con el resto seniors y nos ayudes a dar difusión a este contenido.