如何在Python中解析电子邮件正文?

时间:2018-01-31 06:50:48

标签: python email

如何仅解析电子邮件中的文本数据?

收件箱中有多种类型的电子邮件。

  • 仅文字

  • 空白电子邮件

  • 带有html的文字

  • 附带附件的HTML

  • 带附件的文字

如何识别电子邮件类型,然后仅使用文本提取电子邮件。

我已经创建了一个循环播放电子邮件的功能,但我仍然只是为了提取少量电子邮件。 我在这一行收到以下错误:

 email.message_from_string(response_part[1].decode('utf-8'))

' UTF-8'编解码器不能解码字节0xa0:无效的起始字节

循环播放电子邮件的功能

    def read_email:
        try:
            mail = imaplib.IMAP4_SSL(SMTP_SERVER)
            mail.login(FROM_EMAIL,FROM_PWD)
            mail.select('inbox')

            type, data = mail.search(None, 'ALL')
            mail_ids = data[0]

            id_list = mail_ids.split()

            for i in reversed(id_list):
                typ, data = mail.fetch(i, '(RFC822)')

                for response_part in data:
                     if isinstance(response_part, tuple):
                        msg = email.message_from_string(response_part[1].decode('utf-8'))
                        email_subject = msg['subject']
                        email_from = msg['from']
                        email_to = msg['to']
                        emailid  = msg['message-id']

        except Exception as e:
            print(str(e))

0 个答案:

没有答案