【问题标题】:Parsing an email message body解析电子邮件正文
【发布时间】:2018-12-01 02:40:17
【问题描述】:

我正在使用 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())

【问题讨论】:

标签: python email parsing gmail-api


【解决方案1】:

html2text 做得很好 - 它将 HTML 转换为 ASCII 文本。

不过,您可能需要在事后进行额外的解析/格式化。

【讨论】:

    【解决方案2】:

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

    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
    

    【讨论】:

      【解决方案3】:

      这个答案可以帮助你做你想做的事。我了解您想从电子邮件正文中获取某些文本。您可以使用正则表达式来做到这一点。我制作了一个视频,解释如何使用 Google App Script (JavaScript) 从 Gmail 电子邮件正文中获取数据:

      https://youtu.be/nI1OH3pAz6s?t=8

      您从 GitHub 链接下载代码:

      https://gist.github.com/MoayadAbuRmilah/5835369fdebbecf980029f7339e4d769

      【讨论】:

        猜你喜欢
        • 2013-09-22
        • 1970-01-01
        • 2021-08-13
        • 2013-11-03
        • 2010-09-21
        • 1970-01-01
        • 2011-02-13
        • 2020-08-07
        • 2015-06-29
        相关资源
        最近更新 更多