首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python poplib:正在检索电子邮件结果的正文为NONE

Python poplib:正在检索电子邮件结果的正文为NONE
EN

Stack Overflow用户
提问于 2017-07-12 23:41:47
回答 1查看 1.1K关注 0票数 1

我可以得到电子邮件的主题,但是正文总是没有结果。我试着遵循这个link,但是所有的建议最终都是一样的。正文仍然打印为无。

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

发布于 2017-07-13 00:57:21

代码语言:javascript
复制
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()

这就起到了作用。但是,它会打印一条直线。如果消息的正文很长,谁知道如何每行打印?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45062216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档