From 69825ad2381276cb179c9c7c0630ead9b536cfb6 Mon Sep 17 00:00:00 2001 From: Sergei Date: Mon, 2 Mar 2020 16:21:08 +0100 Subject: [PATCH] fix for python 3 May be it will be useful for someone --- email-widget/read_unread_emails.py | 34 ++++++++++++++++-------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/email-widget/read_unread_emails.py b/email-widget/read_unread_emails.py index 343fe66..607bdcc 100644 --- a/email-widget/read_unread_emails.py +++ b/email-widget/read_unread_emails.py @@ -15,21 +15,23 @@ def process_mailbox(M): if rv != 'OK': print "ERROR getting message", num return - - msg = email.message_from_string(data[0][1]) - print 'From:', msg['From'] - print 'Subject: %s' % (msg['Subject']) - date_tuple = email.utils.parsedate_tz(msg['Date']) - if date_tuple: - local_date = datetime.datetime.fromtimestamp(email.utils.mktime_tz(date_tuple)) - print "Local Date:", local_date.strftime("%a, %d %b %Y %H:%M:%S") - # with code below you can process text of email - # if msg.is_multipart(): - # for payload in msg.get_payload(): - # if payload.get_content_maintype() == 'text': - # print payload.get_payload() - # else: - # print msg.get_payload() + msg = email.message_from_bytes(data[0][1]) + for header in [ 'From', 'Subject', 'Date' ]: + hdr = email.header.make_header(email.header.decode_header(msg[header])) + if header == 'Date': + date_tuple = email.utils.parsedate_tz(str(hdr)) + if date_tuple: + local_date = datetime.datetime.fromtimestamp(email.utils.mktime_tz(date_tuple)) + print("{}: {}".format(header, local_date.strftime("%a, %d %b %Y %H:%M:%S"))) + else: + print('{}: {}'.format(header, hdr) + # with code below you can process text of email + # if msg.is_multipart(): + # for payload in msg.get_payload(): + # if payload.get_content_maintype() == 'text': + # print payload.get_payload() + # else: + # print msg.get_payload() M=imaplib.IMAP4_SSL("mail.teenagemutantninjaturtles.com", 993) @@ -39,4 +41,4 @@ rv, data = M.select("INBOX") if rv == 'OK': process_mailbox(M) M.close() -M.logout() \ No newline at end of file +M.logout()