Leyendo correos electrónicos de Outlook con Python a través de MAPI

Estoy tratando de escribir un programa corto que lea el contenido de los correos electrónicos dentro de una carpeta en mi perfil de intercambio / Outlook para poder manipular los datos. Sin embargo, tengo problemas para encontrar mucha información sobre Python y la integración Exchange / Outlook. Muchas cosas son muy antiguas / no tienen documentos / no se explican. He probado varios fragmentos pero parece que recibo los mismos errores. He probado el código de Tim Golden:

import win32com.client

session = win32com.client.gencache.EnsureDispatch ("MAPI.Session")

#
# Leave blank to be prompted for a session, or use
# your own profile name if not "Outlook". It is also
# possible to pull the default profile from the registry.
#
session.Logon ("Outlook")
messages = session.Inbox.Messages

#
# Although the inbox_messages collection can be accessed
# via getitem-style calls (inbox_messages[1] etc.) this
# is the recommended approach from Microsoft since the
# Inbox can mutate while you're iterating.
#
message = messages.GetFirst ()
while message:
    print message.Subject
    message = messages.GetNext ()

Sin embargo, recibo un error:

pywintypes.com_error: (-2147221005, 'Invalid class string', None, None)

No estoy seguro de cuál es mi nombre de perfil, así que probé con:

session.Logon()

para que se le solicite, pero tampoco funcionó (mismo error). También probé con Outlook abierto y cerrado y ninguno cambió nada.

Respuestas a la pregunta(4)

Su respuesta a la pregunta