Разбор сырой электронной почты с почтовой библиотекой Python с добавлением нежелательных символов - PullRequest
0 голосов
/ 03 июня 2019

Я использую стандартную библиотеку разбора электронной почты 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.

1 Ответ

1 голос
/ 04 июня 2019

Создание комментария в качестве ответа, чтобы его заметили.

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

Это решит проблему кодировки

...