I accidentally marked all the messages in my mailbox as read with this python statement:
status, data = conn.uid('fetch', fetch_uids, '(RFC822)')
But I managed to go through all parts of the message with the following set of statuses:
email_message = email.message_from_string(data[0][1]) for part in email_message.walk(): print '\n' print 'Content-Type:',part.get_content_type() print 'Main Content:',part.get_content_maintype() print 'Sub Content:',part.get_content_subtype()
Exit:
Content-Type: multipart/mixed Main Content: multipart Sub Content: mixed Content-Type: multipart/alternative Main Content: multipart Sub Content: alternative Content-Type: text/plain Main Content: text Sub Content: plain Content-Type: text/html Main Content: text Sub Content: html
I found that if I used this expression:
status, data = conn.uid('fetch', fetch_uids, '(RFC822.HEADER BODY.PEEK[1])')
that I will not mark all my posts read. However, I would also not receive all parts of the message:
Content-Type: multipart/mixed Main Content: multipart Sub Content: mixed
I tried to read the manual for imaplib here , but the word "peek" is not mentioned. My question is: how can I get all parts of a message without marking my messages as read? Thanks.
source share