1

我可以得到电子邮件的主题,但正文总是显示为 NONE。尝试按照此链接进行操作,但所有建议最终都相同。正文仍然打印为 NONE。

import poplib
from email import parser
pop_conn = poplib.POP3_SSL('pop.gmail.com')
pop_conn.user('my_email.com')
pop_conn.pass_('my_password')
#Get messages from server:
messages = [pop_conn.retr(i) for i in range(1, len(pop_conn.list()[1]) + 1)]
# Concat message pieces:
messages = ['\n'.join(map(bytes.decode, mssg[1])) for mssg in messages]
#Parse message intom an email object:
messages = [parser.Parser().parsestr(mssg) for mssg in messages]

for message in messages:
    print (message['subject'])
    print (message['body'])
    print (message.get_payload())
pop_conn.quit()
4

1 回答 1

1
import poplib
from email import parser
pop_conn = poplib.POP3_SSL('pop.gmail.com')
pop_conn.user('my_email.com')
pop_conn.pass_('my_password')
#Get messages from server:
messages = [pop_conn.retr(i) for i in range(1, len(pop_conn.list()[1]) + 1)]
# Concat message pieces:
messages = ['\n'.join(map(bytes.decode, mssg[1])) for mssg in messages]
#Parse message intom an email object:
messages = [parser.Parser().parsestr(mssg) for mssg in messages]

for message in messages:
    print (message['subject'])
    print (message['from'])
    for part in message.walk():
        if part.get_content_type():
            body = part.get_payload(decode=True)
            print(body)
pop_conn.quit()

这成功了。但是它打印一条直线。如果邮件正文很长,有人知道如何每行打印吗?

于 2017-07-12T16:57:21.397 回答