Python搜索imap电子邮件中的字符串

Python搜索imap电子邮件中的字符串,python,html,email,imaplib,Python,Html,Email,Imaplib,python新手,在克服此问题时遇到一些困难。 我通过imap从gmail收到电子邮件(起始代码来自),我想搜索一封特定的电子邮件(我可以获取)以获取特定的字符串。像这样的 ids = data[0] id_list = ids.split() ids = data[0] id_list = ids.split() latest_email_id = id_list[-1] result, data = mail.fetch(latest_email_id, "(RFC822)") raw_e

python新手,在克服此问题时遇到一些困难。
我通过imap从gmail收到电子邮件(起始代码来自),我想搜索一封特定的电子邮件(我可以获取)以获取特定的字符串。像这样的

ids = data[0]
id_list = ids.split()
ids = data[0]
id_list = ids.split()
latest_email_id = id_list[-1]
result, data = mail.fetch(latest_email_id, "(RFC822)") 
raw_email = data[0][1] 

def search_raw():
    if 'gave' in raw_email:
        done = 'yes'
    else:
        done = 'no'
它总是将“完成”设置为“否”。下面是电子邮件的输出(用于电子邮件的正文部分)

我知道问题出在html上,但似乎不知道如何正确解析电子邮件


谢谢大家!

上面的文本是base64编码。Python有一个名为base64的模块,可以对其进行解码

import base64
import re


def has_gave(raw_email):
    email_body = base64.b64decode(raw_email)
    match = re.search(r'.*gave.*', email_body , re.IGNORECASE)
    if match:
        done = 'yes'
        print 'match found for word ', match.group()
    else:
        done = 'no'
        print 'no match found'

    return done

电子邮件的输出类型是什么?是JSON还是字符串之类的?
import base64
import re


def has_gave(raw_email):
    email_body = base64.b64decode(raw_email)
    match = re.search(r'.*gave.*', email_body , re.IGNORECASE)
    if match:
        done = 'yes'
        print 'match found for word ', match.group()
    else:
        done = 'no'
        print 'no match found'

    return done