我正在尝试制作一种可以按其标题查找电子邮件的内容,然后在其内容中搜索某些内容。
import email, imaplib, re, quopri
username = ""
password = ""
mail = imaplib.IMAP4_SSL("imap.mail.yahoo.com", port=993)
mail.login(username, password)
mail.list()
success, emai = mail.search(None, '(SUBJECT "check this out")')
for x in emai[0].split():
mai, dat = mail.fetch(x, "(RFC822)")
decoded = quopri.decodestring(dat[0][1].decode())
email_msg = email.message_from_string(decoded)
break
link = re.search(r'test1 (.*?) test2', str(email_msg))
print(link)
很明显,我的代码很混乱,但是此示例应显示帮助我的所有内容。例如,我给自己发送了一封电子邮件,名为“ check this out”,内容为“ test1 hit test2”。但是我一直在努力寻找答案,因此我要向你们寻求帮助。如何搜索电子邮件,然后获取其内容?
谢谢!
答案 0 :(得分:0)
for x in emai[0].split():
mai, dat = mail.fetch(x, "(RFC822)")
email_msg = email.message_from_string(dat[0][1])
if email_msg.is_multipart():
for payload in email_msg.get_payload(decode=True):
link = re.search(r'test1 (.*?) test2', payload.get_payload(decode=True))
print(link)
else:
link = re.search(r'test1 (.*?) test2', email_msg.get_payload(decode=True))
print(link)
break