Python 解析电子邮件正文

Python 解析电子邮件正文,python,email,parsing,gmail-api,Python,Email,Parsing,Gmail Api,我正在使用gmail API解析我的gmail消息体。它的工作原理不同于主体在html中的情况。有人知道我如何在电子邮件中提取文本吗?如果不是,我怎么能忽略带有html的电子邮件呢 最终,我想在个人/专业电子邮件中实现这一点,其中可能没有html def message_converter(message_id): message = service.users().messages().get(userId='me', id=message_id,format='raw').e

我正在使用gmail API解析我的gmail消息体。它的工作原理不同于主体在html中的情况。有人知道我如何在电子邮件中提取文本吗?如果不是,我怎么能忽略带有html的电子邮件呢

最终,我想在个人/专业电子邮件中实现这一点,其中可能没有html

def message_converter(message_id):
        message = service.users().messages().get(userId='me', id=message_id,format='raw').execute()
        msg_str = str(base64.urlsafe_b64decode(message['raw'].encode('ASCII')),'UTF-8')
        mime_msg = email.message_from_string(msg_str)
        if mime_msg.is_multipart():
            for payload in mime_msg.get_payload():
                # if payload.is_multipart(): ...
                print (payload.get_payload())
        else:
            print (mime_msg.get_payload())
做得很好-它将HTML转换为ASCII文本


但是,您可能需要在事后执行其他解析/格式设置

我不知道这是否对你有帮助,但是Gmail Api有相同的语法,因此在C#中,你可以在3个地方找到文本消息(这取决于邮件服务器),因此:


这个答案可能会帮助你做你要做的事情。我知道你想从邮件正文中获得某些信息。您可以使用正则表达式来实现这一点。我制作了一段视频,解释了如何使用谷歌应用程序脚本(JavaScript)从Gmail邮件正文中获取数据:

您可以从GitHub链接下载代码:


您可能遇到了中讨论的问题。
msg.Payload.Parts[1].Body.Data;  // here you can find text message without HTML tag

msg.Payload.Parts[0].Body.Data; // here you can find text message with HTML tag

msg.Payload.Body.Data; // and here you dont have a choice you have the HTMl tag