首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python 3-如何仅提取电子邮件正文

Python 3-如何仅提取电子邮件正文
EN

Stack Overflow用户
提问于 2017-08-03 22:48:18
回答 1查看 5.7K关注 0票数 2

我有这个代码来提取电子邮件正文,但输出显示了消息和一些加密的信息。我需要帮助才能只得到信息。

上一个版本我已经尝试了lib imaplib,但我没有成功,因为所有的消息都是加密的,所以我改成了poplib。

作为未来的更新,我想添加主题,日期和发件人

代码语言:javascript
复制
#!/usr/bin/env python3
# -- coding: utf-8 --

import email
import poplib

login = input('Email: ')
password = input('Password: ')
pop_server = 'pop-mail.outlook.com'
pop_port = 995

mail_box = poplib.POP3_SSL(pop_server, pop_port)
mail_box.user(login)
mailbox.pass_(password)
numMessages = len(mail_box.list()[1])

if numMessages > 15:
    numMessages = 15
for i in range(15):
    (server_msg, body, octets) = mail_box.retr(i+1)
    for j in body:
        try:
            msg = email.message_from_string(j.decode("utf-8"))
            strtext = msg.get_payload()
            print(strtext)
        except:
            pass
EN

回答 1

Stack Overflow用户

发布于 2018-06-06 07:34:51

如果a是原始电子邮件字符串:

代码语言:javascript
复制
msg = email.message_from_string(a)
if msg.is_multipart():
    for part in msg.walk():
        payload = part.get_payload(decode=True) #returns a bytes object
        strtext = payload.decode() #utf-8 is default
        print(strtext)
else:
    payload = msg.get_payload(decode=True)
    strtext = payload.decode()
    print(strtext)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45487639

复制
相关文章

相似问题

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