2010-07-19 7 views
19

Je veux analyser des e-mails à partir d'une boîte de réception de l'utilisateur, mais quand je fais:Fetch un email avec imaplib mais ne marquer comme SEEN

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

Il marque l'e-mail comme lu ou vu. Ce n'est pas la fonctionnalité souhaitée. Savez-vous comment puis-je garder l'email à son regard précédent soit vu ou non vu?

Répondre

33

Vous pouvez également définir read_only true lors de la sélection du dossier:

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

Cela ne convient pas si vous souhaitez modifier le dossier pour d'autres raisons (par exemple, supprimez certains des messages que vous avez consultés car ils sont des spams ou autres). – tripleee

1

Vous pouvez utiliser (RFC822.PEEK) en tant qu'argument "message-parts", selon RFC 1730 (je n'ai pas vérifié quels serveurs implémentent réellement cela correctement, mais cela ne leur semble pas difficile).

+1

Malheureusement, il n'a pas fonctionné avec Gmail mais la réponse précédente a fait. Merci quand même! – PanosJee

16

Ce qui suit devrait fonctionner:

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

ou BODY.PEEK[TEXT], etc.

Questions connexes