将电子邮件正文转换为字符串

时间:2019-02-19 17:05:47

标签: python python-3.x

所以我正在研究使用正则表达式从电子邮件中搜索内容的方法,该电子邮件是通过imaplib模块获取的。现在,即使使用了str()函数,我也无法正常工作。

result, data = mail.fetch(x, '(RFC822)')
eemail = email.message_from_bytes(data[0][1])
print(str(eemail))

尝试对其进行正则表达式:

print(re.search("button", eemail))

即使在将电子邮件设为字符串对象之后,正则表达式也无法匹配我。

1 个答案:

答案 0 :(得分:0)

这是我使用的:

import imaplib
import email
import re

mail = imaplib.IMAP4_SSL(SMTP_SERVER, SMTP_PORT)
mail.login(FROM_EMAIL,FROM_PWD)
mail.select('inbox')

status, response = mail.search(None, '(UNSEEN)')
unread_msg_nums = response[0].split()

for e_id in unread_msg_nums:
    _, response = mail.fetch(e_id, '(UID BODY[TEXT])')
    b = email.message_from_string(response[0][1])
    if b.is_multipart():
        for payload in b.get_payload(decode=True):
            print(re.search("button", payload.get_payload(decode=True)))
    else:
        print(re.search("button", b.get_payload(decode=True)))