无法在Python 3.6 +

时间:2018-07-27 10:29:42

标签: python python-3.x imap

我为脚本编写了以下代码:

import sys
import imaplib
import getpass
import email
import email.header
import datetime
EMAIL_ACCOUNT = "notatallawhistleblowerIswear@gmail.com" 
EMAIL_FOLDER = "INBOX"   

def process_mailbox(M):       
    rv, data = M.search(None, "ALL")
    if rv != 'OK':
        print("No messages found!")
        return

    for num in data[0].split():
        rv, data = M.fetch(num, '(RFC822)')
        if rv != 'OK':
            print("ERROR getting message", num)
            return

        msg = email.message_from_bytes(data[0][1])
        hdr = email.header.make_header(email.header.decode_header(msg['Subject']))
        subject = str(hdr)
        print('Message %s: %s' % (num, subject))
        print('Raw Date:', msg['Date'])
        # Now convert to local date-time
        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"))   

M = imaplib.IMAP4_SSL('imap.gmail.com')   

    rv, data = M.login(EMAIL_ACCOUNT, getpass.getpass())  

print(rv, data)    
rv, mailboxes = M.list()    
rv, data = M.select(EMAIL_FOLDER)  
    print("Processing mailbox...\n")
    process_mailbox(M)
    M.close()  

M.logout()

我无法使用IMAP提取gmail正文。我已成功使用IMAP从电子邮件中获取主题名称。

我如何阅读gmail正文?

1 个答案:

答案 0 :(得分:0)

尝试:

   msg = email.message_from_string(data[0][1])
   print(msg['From'])
   print(msg.get_payload(decode=True))

还可以签出: Python : How to parse the Body from a raw email , given that raw email does not have a "Body" tag or anything