我可以收到电子邮件的主题,但是正文总是无效。尝试遵循此link但所有建议最终都是相同的。身体仍然打印为无。
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()
答案 0 :(得分:0)
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()
这就是诀窍。但是它打印出一条直线。如果消息正文很长,任何人都知道如何打印每行?