簡體   English   中英

解析電子郵件正文

[英]Parsing an email message body

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

html2text做得很好 - 它將 HTML 轉換為 ASCII 文本。

但是,您可能需要在事后進行額外的解析/格式化。

我不知道這是否可以幫助您,但 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

這個答案可能會幫助你做你想做的事情。 我知道您想從電子郵件正文中獲取某些文本。 您可以使用正則表達式來做到這一點。 我制作了一個視頻,解釋了如何使用 Google App Script (JavaScript) 從 Gmail 電子郵件正文中獲取數據:

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

您從 GitHub 鏈接下載代碼:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM