首页 > 解决方案 > 使用 python 电子邮件库解析原始电子邮件添加不需要的字符

问题描述

我正在使用 python 标准电子邮件解析库来解析我从 amazon ses 邮件服务获得的原始电子邮件。

下面是我的代码。

import json
import email
from email.Utils import parseaddr

def parse(raw_email):
    message = email.message_from_string(raw_email)
    text_plain = None
    text_html = None

    for part in message.walk():
        if part.get_content_type() == 'text/plain' and text_plain is None:
            text_plain = part.get_payload()
        if part.get_content_type() == 'text/html' and text_html is None:
            text_html = part.get_payload()

    parsed_email_object = {
      'to': parseaddr(message.get('To'))[1],
      'from': parseaddr(message.get('From'))[1],
      'delivered to': parseaddr(message.get('Delivered-To'))[1],
      'subject': message.get('Subject'),
      'text_plain': text_plain,
      'text_html': text_html,
    }

    json_string = json.dumps(parsed_email_object)
    return json_string

当我解析我的原始电子邮件时,它没有解析 100%,它给了我这样不需要的字符

this is a replyo from the gmail indbo asdf asdf asdfa sdfa=
sd sdfa sdfa fasd
=C2=A0dfa sf asdf
a sdfas
<= div>f asdf=C2=A0


Is there anything else like some decoding option to parse it correctly.

标签: pythonemailparsing

解决方案


将我的评论作为答案,以便引起注意。

part.get_payload(decode=True).decode(part.get_content_charset())

这将解决编码问题


推荐阅读