Próbuję napisać krótki program, który będzie czytał zawartość e-maili w folderze na moim profilu wymiany/Outlooka, aby móc manipulować danymi. Jednak mam problem ze znalezieniem wielu informacji na temat integracji Pythona i Exchange/Outlook. Wiele rzeczy jest albo bardzo starych/nie ma dokumentów/nie wyjaśniono. Próbowałem już kilku fragmentów, ale wydaje się, że otrzymuję te same błędy. Próbowałem Tim złoty za kod:Czytanie e-maili z Outlooka za pomocą Pythona poprzez MAPI
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()
Jednakże pojawia się błąd:
pywintypes.com_error: (-2147221005, 'Invalid class string', None, None)
Nie wiem, co moja nazwa profilu jest tak próbowałem z:
session.Logon()
zostać poproszony ale to też nie działało (ten sam błąd). Próbowano również zarówno z Otwieraniem i zamykaniem Outlooka, jak i bez zmian.
Czy rozważałeś korzystanie z protokołu IMAP na serwerze, a nie w zależności od klienta Outlook? W zależności od przypadku użycia protokół IMAP może okazać się wydajny i znacznie bardziej przenośny (zarówno klienci, jak i serwery). –
@Jason IMAP wygląda dobrze, ale niestety nie jest włączony na używanym koncie. – johnharris85