2010-12-16 21 views
7

Ich verwende imaplib, um mit IMAP in Python zu arbeiten, aber es sieht aus, als hätte es keine Möglichkeit, die Details von IMAP-Antworten zu analysieren. Zum Beispiel fragen wie:IMAP-Antworten in Python analysieren

msgdata = connection.fetch(num, "(BODY.PEEK[HEADER.FIELDS (FROM TO CC DATE SUBJECT MESSAGE-ID)] UID)") 

wo num die Nachrichtennummer ist, für einen Mail-Server herstellen kann (zum Beispiel):

('OK', [('1234 (BODY[HEADER.FIELDS (FROM TO CC DATE SUBJECT MESSAGE-ID)] {123}', 'From: ...etc headers'), ' UID 3456)']) 

und für eine andere:

('OK', [('1234 (UID 3456 BODY[HEADER.FIELDS (FROM TO CC DATE SUBJECT MESSAGE-ID)] {123}', 'From: ...etc headers'), ')']) 

Wie Sie sehen, die Nachricht Details sind unterschiedlich und UID ist sogar in verschiedenen Element dort. Die Frage ist also - gibt es eine Bibliothek, die es automatisch sortieren und die Details des jeweiligen Mail-Servers abstrahieren lässt?

Antwort

6

Doug Hellmans Python Module of the Week entry for imaplib ist ein ziemlich umfangreiches Tutorial zu diesem Thema, aber es ist viel zu lang hier zu reproduzieren.

Sie könnten eine höhere Bibliothek wie IMAPClient verwenden, um einige der Details des IMAP-Protokolls zu verbergen.

+0

Unglücklicherweise gleitet Dougs Tutorial irgendwie über das Thema Parsen komplexerer fetch() Antworten. Danke für den Link zu IMAPClient, ich werde es überprüfen. – StasM

Verwandte Themen