2010-07-19 5 views
19

GESEHEN möchte ich einige E-Mails von einem Benutzer ‚s Posteingang analysieren, aber wenn ich tun:eine E-Mail mit imaplib holen, aber es nicht markieren, wie

typ, msg_data = imap_conn.fetch(uid, '(RFC822)') 

Es markiert die E-Mail als gesehen oder gelesen. Dies ist nicht die gewünschte Funktionalität. Weißt du, wie kann ich die E-Mail bei ihrem vorherigen Blick entweder GESEHEN oder NICHT GESEHEN halten?

Antwort

33

Sie auch read_only auf true gesetzt könnten, wenn Sie den Ordner auswählen:

imap_conn.select('Inbox', readonly=True) 
+0

Dies ist ungeeignet, wenn Sie den Ordner aus anderen Gründen ändern möchten (z. B. entfernen Sie einige der Nachrichten, die Sie gesehen haben, weil sie Spam sind oder was auch immer). – tripleee

1

Sie können (RFC822.PEEK) als das "message-parts" -Argument verwenden, nach RFC 1730 (Ich habe nicht überprüft, welche Server das tatsächlich korrekt implementieren, aber es scheint nicht schwer für sie).

+1

Leider hat es nicht mit Google Mail aber die vorherige Antwort hat es getan. Trotzdem danke! – PanosJee

16

Folgendes sollte funktionieren:

typ, msg_data = imap_conn.fetch(uid, '(BODY.PEEK[HEADER])') 

oder BODY.PEEK[TEXT] usw.